diff options
author | nagachika <nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2015-05-19 18:43:01 +0000 |
---|---|---|
committer | nagachika <nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2015-05-19 18:43:01 +0000 |
commit | 9eb78a21387b6a90f5f9558de79b59f6348156fc (patch) | |
tree | 3b590f414023bcb1d4a4dc8b394bb3435fc115c1 /vm.c | |
parent | 3f1fc07e0533b1c27817828843513964f1b8b67d (diff) |
merge revision(s) 49922,50111,50112: [Backport #11012]
* proc.c: use RUBY_VM_IFUNC_P() to recognize IFUNC or not.
* vm.c: ditto.
* vm_dump.c: ditto.
* vm_insnhelper.c: ditto.
* vm_core.h: use RB_TYPE_P() instead of BUILTIN_TYPE().
* proc.c (proc_binding): replicate env from method object, and
allocate the local variable area for the iseq local table.
[ruby-core:68673] [Bug #11012]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_2@50548 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'vm.c')
-rw-r--r-- | vm.c | 4 |
1 files changed, 2 insertions, 2 deletions
@@ -380,7 +380,7 @@ env_mark(void * const ptr) RUBY_MARK_UNLESS_NULL(env->block.proc); if (env->block.iseq) { - if (BUILTIN_TYPE(env->block.iseq) == T_NODE) { + if (RUBY_VM_IFUNC_P(env->block.iseq)) { RUBY_MARK_UNLESS_NULL((VALUE)env->block.iseq); } else { @@ -768,7 +768,7 @@ invoke_block_from_c(rb_thread_t *th, const rb_block_t *block, if (SPECIAL_CONST_P(block->iseq)) { return Qnil; } - else if (BUILTIN_TYPE(block->iseq) != T_NODE) { + else if (!RUBY_VM_IFUNC_P(block->iseq)) { VALUE ret; const rb_iseq_t *iseq = block->iseq; const rb_control_frame_t *cfp; |