зеркало из https://github.com/github/ruby.git
vm_eval.c: hide intermediate hash
* vm_eval.c (rb_f_local_variables): hide intermediate hash and use rb_hash_keys() directly. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45857 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
Родитель
5bec2d8ccd
Коммит
082a886444
|
@ -1918,6 +1918,7 @@ rb_f_local_variables(void)
|
|||
|
||||
vars.tbl = rb_hash_new();
|
||||
RHASH(vars.tbl)->ntbl = st_init_numtable(); /* compare_by_identity */
|
||||
RBASIC_CLEAR_CLASS(vars.tbl);
|
||||
while (cfp) {
|
||||
if (cfp->iseq) {
|
||||
for (i = 0; i < cfp->iseq->local_table_size; i++) {
|
||||
|
@ -1941,9 +1942,8 @@ rb_f_local_variables(void)
|
|||
break;
|
||||
}
|
||||
}
|
||||
/* TODO: rb_hash_keys() directly, or something not to depend on
|
||||
* the order of st_table */
|
||||
ary = rb_funcallv(vars.tbl, rb_intern("keys"), 0, 0);
|
||||
/* TODO: not to depend on the order of st_table */
|
||||
ary = rb_hash_keys(vars.tbl);
|
||||
rb_hash_clear(vars.tbl);
|
||||
return ary;
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче