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: