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