mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* vm.c, eval_intern.h (PASS_PASSED_BLOCK):
set a VM_FRAME_FLAG_PASSED flag to skip this frame when searching ruby-level-cfp. * eval.c, eval_intern.h, proc.c: fix to check cfp. if there is no valid ruby-level-cfp, cause RuntimeError exception. [ruby-dev:34128] * vm_core.h, vm_evalbody.c, vm.c, vm_dump.c, vm_insnhelper.c, insns.def: rename FRAME_MAGIC_* to VM_FRAME_MAGIC_*. * KNOWNBUGS.rb, bootstraptest/test*.rb: move solved bugs. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@17084 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
e6697a6405
commit
9e324fdd3e
17 changed files with 242 additions and 191 deletions
21
vm.h
21
vm.h
|
@ -219,27 +219,6 @@ default: \
|
|||
(!((th)->stack < (env) && (env) < ((th)->stack + (th)->stack_size)))
|
||||
#define ENV_VAL(env) ((env)[1])
|
||||
|
||||
#define FRAME_MAGIC_METHOD 0x11
|
||||
#define FRAME_MAGIC_BLOCK 0x21
|
||||
#define FRAME_MAGIC_CLASS 0x31
|
||||
#define FRAME_MAGIC_TOP 0x41
|
||||
#define FRAME_MAGIC_FINISH 0x51
|
||||
#define FRAME_MAGIC_CFUNC 0x61
|
||||
#define FRAME_MAGIC_PROC 0x71
|
||||
#define FRAME_MAGIC_IFUNC 0x81
|
||||
#define FRAME_MAGIC_EVAL 0x91
|
||||
#define FRAME_MAGIC_LAMBDA 0xa1
|
||||
#define FRAME_MAGIC_MASK_BITS 8
|
||||
#define FRAME_MAGIC_MASK (~(~0<<FRAME_MAGIC_MASK_BITS))
|
||||
|
||||
#define VM_FRAME_FLAG(type) ((VALUE)((type) & FRAME_MAGIC_MASK))
|
||||
|
||||
#define VM_FRAME_TYPE(cfp) \
|
||||
((cfp)->flag & FRAME_MAGIC_MASK)
|
||||
|
||||
#define RUBYVM_CFUNC_FRAME_P(cfp) \
|
||||
(VM_FRAME_TYPE(cfp) == FRAME_MAGIC_CFUNC)
|
||||
|
||||
#if OPT_CALL_THREADED_CODE
|
||||
#define THROW_EXCEPTION(exc) do { \
|
||||
th->errinfo = (VALUE)(exc); \
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue