aboutsummaryrefslogtreecommitdiffstats
path: root/hash.c
diff options
context:
space:
mode:
authorcharliesome <charliesome@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-02-06 13:46:26 +0000
committercharliesome <charliesome@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-02-06 13:46:26 +0000
commite45e06410dd36e313ea3456ba406e31f66034a2e (patch)
tree450cdfda385d88781620b39edd5afb9e87694cce /hash.c
parent834fd50ae2953505c454c56342a42da441ccb22f (diff)
downloadruby-e45e06410dd36e313ea3456ba406e31f66034a2e.tar.gz
* hash.c (env_reject_bang): hide keys array from ObjectSpace
* hash.c (env_select_bang): ditto git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39116 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'hash.c')
-rw-r--r--hash.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/hash.c b/hash.c
index 48201b6e60..a2261bdf93 100644
--- a/hash.c
+++ b/hash.c
@@ -2713,6 +2713,7 @@ env_reject_bang(VALUE ehash)
RETURN_SIZED_ENUMERATOR(ehash, 0, 0, rb_env_size);
keys = env_keys(); /* rb_secure(4); */
+ RBASIC(keys)->klass = 0;
for (i=0; i<RARRAY_LEN(keys); i++) {
VALUE val = rb_f_getenv(Qnil, RARRAY_PTR(keys)[i]);
if (!NIL_P(val)) {
@@ -2816,6 +2817,7 @@ env_select_bang(VALUE ehash)
RETURN_SIZED_ENUMERATOR(ehash, 0, 0, rb_env_size);
keys = env_keys(); /* rb_secure(4); */
+ RBASIC(keys)->klass = 0;
for (i=0; i<RARRAY_LEN(keys); i++) {
VALUE val = rb_f_getenv(Qnil, RARRAY_PTR(keys)[i]);
if (!NIL_P(val)) {