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:
nobu 2014-05-07 04:26:55 +00:00
Родитель 5bec2d8ccd
Коммит 082a886444
1 изменённых файлов: 3 добавлений и 3 удалений

Просмотреть файл

@ -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;
}