ruby-changes:2090
From: ko1@a...
Date: 1 Oct 2007 15:18:20 +0900
Subject: [ruby-changes:2090] nobu - Ruby:r13581 (trunk): * gc.c (id2ref): T_VALUES is less than T_BLOCK.
nobu 2007-10-01 15:17:50 +0900 (Mon, 01 Oct 2007)
New Revision: 13581
Added files:
trunk/bootstraptest/test_objectspace.rb
Modified files:
trunk/ChangeLog
trunk/bootstraptest/test_knownbug.rb
trunk/gc.c
Log:
* gc.c (id2ref): T_VALUES is less than T_BLOCK. [ruby-dev:31911]
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ChangeLog?r1=13581&r2=13580
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/bootstraptest/test_objectspace.rb?r1=13581&r2=13580
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/bootstraptest/test_objectspace.rb?revision=13581&view=markup
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/gc.c?r1=13581&r2=13580
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/bootstraptest/test_knownbug.rb?r1=13581&r2=13580
Index: ChangeLog
===================================================================
--- ChangeLog (revision 13580)
+++ ChangeLog (revision 13581)
@@ -1,3 +1,7 @@
+Mon Oct 1 15:17:48 2007 Nobuyoshi Nakada <nobu@r...>
+
+ * gc.c (id2ref): T_VALUES is less than T_BLOCK. [ruby-dev:31911]
+
Mon Oct 1 10:58:42 2007 Nobuyoshi Nakada <nobu@r...>
* ruby.c (require_libraries): use require method instead of calling
Index: bootstraptest/test_objectspace.rb
===================================================================
--- bootstraptest/test_objectspace.rb (revision 0)
+++ bootstraptest/test_objectspace.rb (revision 13581)
@@ -0,0 +1,13 @@
+assert_normal_exit %q{
+ eval("", TOPLEVEL_BINDING)
+ minobj = ObjectSpace.to_enum(:each_object).min_by {|a| a.object_id }
+ maxobj = ObjectSpace.to_enum(:each_object).max_by {|a| a.object_id }
+ minobj.object_id.upto(maxobj.object_id) {|id|
+ begin
+ o = ObjectSpace._id2ref(id)
+ rescue RangeError
+ next
+ end
+ o.inspect if defined?(o.inspect)
+ }
+}, '[ruby-dev:31911]'
Property changes on: bootstraptest/test_objectspace.rb
___________________________________________________________________
Name: svn:eol-style
+ LF
Index: bootstraptest/test_knownbug.rb
===================================================================
--- bootstraptest/test_knownbug.rb (revision 13580)
+++ bootstraptest/test_knownbug.rb (revision 13581)
@@ -34,20 +34,6 @@
}
assert_normal_exit %q{
- eval("", TOPLEVEL_BINDING)
- minobj = ObjectSpace.to_enum(:each_object).min {|a,b| a.object_id <=> b.object_id }
- maxobj = ObjectSpace.to_enum(:each_object).max {|a,b| a.object_id <=> b.object_id }
- minobj.object_id.upto(maxobj.object_id) {|id|
- begin
- o = ObjectSpace._id2ref(id)
- rescue RangeError
- next
- end
- o.inspect
- }
-}, '[ruby-dev:31911]'
-
-assert_normal_exit %q{
require 'continuation'
Fiber.new{ callcc{|c| @c = c } }.resume
}, '[ruby-dev:31913]'
Index: gc.c
===================================================================
--- gc.c (revision 13580)
+++ gc.c (revision 13581)
@@ -2069,7 +2069,7 @@
return ID2SYM(symid);
}
- if (!is_pointer_to_heap((void *)ptr)|| BUILTIN_TYPE(ptr) >= T_BLOCK) {
+ if (!is_pointer_to_heap((void *)ptr) || BUILTIN_TYPE(ptr) >= T_VALUES) {
rb_raise(rb_eRangeError, "%p is not id value", p0);
}
if (BUILTIN_TYPE(ptr) == 0 || RBASIC(ptr)->klass == 0) {
--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml