summaryrefslogtreecommitdiff
path: root/iseq.c
diff options
context:
space:
mode:
authorusa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-12-11 09:51:43 +0000
committerusa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-12-11 09:51:43 +0000
commit35f2714452975d567a966b3e8614a203eac8f099 (patch)
tree556975cb00ac4b40ac198fd128cfa85e2c1bf6cd /iseq.c
parent985a8067cda379847bab32b36c3fd8c54740b42e (diff)
merge revision(s) 38292: [Backport #6899]
* compile.c (iseq_compile_each): count flip-flop state in local iseq not in each iseqs, so that the keys can be other than hidden strings. [ruby-core:47253] [Bug #6899] * vm_insnhelper.c (lep_svar_get, lep_svar_set, vm_getspecial): store flip-flop states in an array instead of a hash. * iseq.c (set_relation): main iseq also can has local scope. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@38317 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'iseq.c')
-rw-r--r--iseq.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/iseq.c b/iseq.c
index 73806630b5..721277a7d3 100644
--- a/iseq.c
+++ b/iseq.c
@@ -216,6 +216,10 @@ set_relation(rb_iseq_t *iseq, const VALUE parent)
GetISeqPtr(parent, piseq);
iseq->parent_iseq = piseq;
}
+
+ if (type == ISEQ_TYPE_MAIN) {
+ iseq->local_iseq = iseq;
+ }
}
static VALUE