1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

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
This commit is contained in:
nobu 2012-12-10 06:11:16 +00:00
parent 2ffc29e864
commit c9b4b78085
7 changed files with 50 additions and 22 deletions

2
iseq.h
View file

@ -131,6 +131,8 @@ enum defined_type {
VALUE rb_iseq_defined_string(enum defined_type type);
#define DEFAULT_SPECIAL_VAR_COUNT 2
#if defined __GNUC__ && __GNUC__ >= 4
#pragma GCC visibility pop
#endif