summaryrefslogtreecommitdiff
path: root/string.c
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-04-12 13:11:11 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-04-12 13:11:11 +0000
commit2f3b28c682fe3010ed3b8803199616c12b52512d (patch)
tree8d902a2523cb232f24e07acfceb7edd3af86cd52 /string.c
parentbe711df831c907551429345a91b1a07ff90be738 (diff)
string.c: clear env self in symbol proc
* string.c (sym_to_proc), proc.c (rb_block_clear_env_self): clear caller's self which is useless, so that it can get collected. [Fixes GH-592] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45576 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'string.c')
-rw-r--r--string.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/string.c b/string.c
index 56b27d9d75..28b1efa2e9 100644
--- a/string.c
+++ b/string.c
@@ -8506,6 +8506,7 @@ sym_to_proc(VALUE sym)
}
else {
proc = rb_proc_new(sym_call, (VALUE)id);
+ rb_block_clear_env_self(proc);
aryp[index] = sym;
aryp[index + 1] = proc;
return proc;