[前][次][番号順一覧][スレッド一覧]

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

[前][次][番号順一覧][スレッド一覧]