1
0
Fork 0
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:
ko1 2008-06-10 21:46:43 +00:00
parent e6697a6405
commit 9e324fdd3e
17 changed files with 242 additions and 191 deletions

21
vm.h
View file

@ -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); \