diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-12-10 06:11:16 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-12-10 06:11:16 +0000 |
commit | c9b4b78085ee07fa6cae4a267fa5dff80d6351a4 (patch) | |
tree | 402919e6009d329366415466247888ea44af3aa4 /iseq.c | |
parent | 2ffc29e8644f2aff66f373573299b33618b145f7 (diff) |
compile.c, vm_insnhelper.c: flip-flop without hidden string key
* 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/trunk@38292 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'iseq.c')
-rw-r--r-- | iseq.c | 4 |
1 files changed, 4 insertions, 0 deletions
@@ -231,6 +231,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 |