summaryrefslogtreecommitdiff
path: root/proc.c
diff options
context:
space:
mode:
authorusa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2015-10-29 14:56:00 +0000
committerusa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2015-10-29 14:56:00 +0000
commita6b6f9bb5941bb616608729fa9678b08d23e4c56 (patch)
treec2e28888760642ca18bbaad36ae80168dfd74b0a /proc.c
parent24d44aeb023364c0cd9ec8958ea8be6b98fa044f (diff)
merge revision(s) 45576: [Backport #11572]
* 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/branches/ruby_2_1@52362 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'proc.c')
-rw-r--r--proc.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/proc.c b/proc.c
index a13452329d..1ee442a7f8 100644
--- a/proc.c
+++ b/proc.c
@@ -637,6 +637,17 @@ rb_block_lambda(void)
}
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)
{
rb_warn("rb_f_lambda() is deprecated; use rb_block_proc() instead");