summaryrefslogtreecommitdiff
path: root/vm.c
diff options
context:
space:
mode:
authornagachika <nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2015-05-19 18:43:01 +0000
committernagachika <nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2015-05-19 18:43:01 +0000
commit9eb78a21387b6a90f5f9558de79b59f6348156fc (patch)
tree3b590f414023bcb1d4a4dc8b394bb3435fc115c1 /vm.c
parent3f1fc07e0533b1c27817828843513964f1b8b67d (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.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/vm.c b/vm.c
index e6ef3a89af..ca70d466a2 100644
--- a/vm.c
+++ b/vm.c
@@ -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;