ruby-changes:3517
From: ko1@a...
Date: Sun, 13 Jan 2008 15:37:04 +0900 (JST)
Subject: [ruby-changes:3517] nobu - Ruby:r14995 (trunk): * proc.c (proc_mark): needs to mark the receiver too. a patch from
nobu 2008-01-11 20:20:18 +0900 (Fri, 11 Jan 2008) New Revision: 14995 Modified files: trunk/ChangeLog trunk/bootstraptest/test_proc.rb trunk/proc.c Log: * proc.c (proc_mark): needs to mark the receiver too. a patch from Chris Heath <chris AT heathens.co.nz> in [ruby-core:14983]. [ruby-core:14885] http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ChangeLog?r1=14995&r2=14994&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/bootstraptest/test_proc.rb?r1=14995&r2=14994&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/proc.c?r1=14995&r2=14994&diff_format=u Index: ChangeLog =================================================================== --- ChangeLog (revision 14994) +++ ChangeLog (revision 14995) @@ -1,3 +1,9 @@ +Fri Jan 11 20:20:16 2008 Nobuyoshi Nakada <nobu@r...> + + * proc.c (proc_mark): needs to mark the receiver too. a patch from + Chris Heath <chris AT heathens.co.nz> in [ruby-core:14983]. + [ruby-core:14885] + Fri Jan 11 18:28:49 2008 Eric Hodel <drbrain@s...> * lib/rdoc/usage.rb: Removed. Index: bootstraptest/test_proc.rb =================================================================== --- bootstraptest/test_proc.rb (revision 14994) +++ bootstraptest/test_proc.rb (revision 14995) @@ -253,3 +253,10 @@ a + 2 }.call } + +assert_equal %q{ok}, %q{ + class A; def get_block; proc {puts "ok"} end end + block = A.new.get_block + GC.start + block.call +} Index: proc.c =================================================================== --- proc.c (revision 14994) +++ proc.c (revision 14995) @@ -52,6 +52,7 @@ RUBY_MARK_UNLESS_NULL(proc->blockprocval); RUBY_MARK_UNLESS_NULL((VALUE)proc->special_cref_stack); RUBY_MARK_UNLESS_NULL(proc->block.proc); + RUBY_MARK_UNLESS_NULL(proc->block.self); if (proc->block.iseq && RUBY_VM_IFUNC_P(proc->block.iseq)) { RUBY_MARK_UNLESS_NULL((VALUE)(proc->block.iseq)); } -- ML: ruby-changes@q... Info: