summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-05-07 04:26:55 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-05-07 04:26:55 +0000
commit082a8864445f804a08ecf0f0cb8ae9a934435026 (patch)
tree2fd856bd6971c24f1fda6e6d2adf819ee4e96602
parent5bec2d8ccdfafa6c2ae7ae93e436cacabddb8d0d (diff)
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
-rw-r--r--vm_eval.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/vm_eval.c b/vm_eval.c
index 2468640b9b..96bbab3ba5 100644
--- a/vm_eval.c
+++ b/vm_eval.c
@@ -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;
}