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;