From 1bcd74de17c1b727e10c0864a5e0e88c3ab502fb Mon Sep 17 00:00:00 2001 From: mame Date: Sun, 9 May 2010 14:51:43 +0000 Subject: [PATCH] * proc.c (proc_dup): copy blockprocval. proc_dup is used by define_method, which made blockprocval be GC'ed mistakenly. [ruby-core:30023] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27703 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 6 ++++++ proc.c | 1 + 2 files changed, 7 insertions(+) diff --git a/ChangeLog b/ChangeLog index 17c6fbe20b..19b6bc7ca1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +Sun May 9 23:07:53 2010 Yusuke Endoh + + * proc.c (proc_dup): copy blockprocval. proc_dup is used by + define_method, which made blockprocval be GC'ed mistakenly. + [ruby-core:30023] + Sun May 9 16:28:15 2010 Nobuyoshi Nakada * cont.c (fiber_initialize_machine_stack_context): try to release diff --git a/proc.c b/proc.c index 30fc2475a6..81ec03d954 100644 --- a/proc.c +++ b/proc.c @@ -105,6 +105,7 @@ proc_dup(VALUE self) dst->block = src->block; dst->block.proc = procval; + dst->blockprocval = src->blockprocval; dst->envval = src->envval; dst->safe_level = src->safe_level; dst->is_lambda = src->is_lambda;