From 2f3b28c682fe3010ed3b8803199616c12b52512d Mon Sep 17 00:00:00 2001 From: nobu Date: Sat, 12 Apr 2014 13:11:11 +0000 Subject: 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 --- proc.c | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'proc.c') diff --git a/proc.c b/proc.c index b36c7aa865..1271a3ba42 100644 --- a/proc.c +++ b/proc.c @@ -709,6 +709,17 @@ rb_block_lambda(void) return proc_new(rb_cProc, TRUE); } +VALUE +rb_block_clear_env_self(VALUE proc) +{ + rb_proc_t *po; + rb_env_t *env; + GetProcPtr(proc, po); + GetEnvPtr(po->envval, env); + env->env[0] = Qnil; + return proc; +} + VALUE rb_f_lambda(void) { -- cgit v1.2.3