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

ruby-changes:4578

From: ko1@a...
Date: Fri, 18 Apr 2008 17:38:07 +0900 (JST)
Subject: [ruby-changes:4578] nobu - Ruby:r16072 (trunk): * gc.c (rb_gc_mark_locations): get rid of underflow.

nobu	2008-04-18 17:37:50 +0900 (Fri, 18 Apr 2008)

  New Revision: 16072

  Modified files:
    trunk/ChangeLog
    trunk/gc.c

  Log:
    * gc.c (rb_gc_mark_locations): get rid of underflow.
    
    * gc.c (mark_current_machine_context): check if the main thread stack
      position may shink under the intialized position.  [ruby-core:16436]


  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ChangeLog?r1=16072&r2=16071&diff_format=u
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/gc.c?r1=16072&r2=16071&diff_format=u

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 16071)
+++ ChangeLog	(revision 16072)
@@ -1,3 +1,10 @@
+Fri Apr 18 17:37:48 2008  Nobuyoshi Nakada  <nobu@r...>
+
+	* gc.c (rb_gc_mark_locations): get rid of underflow.
+
+	* gc.c (mark_current_machine_context): check if the main thread stack
+	  position may shink under the intialized position.  [ruby-core:16436]
+
 Thu Apr 17 22:20:52 2008  Yusuke Endoh  <mame@t...>
 
 	* enc/trans/utf_16_32.c (fun_so_to_utf_16be, fun_so_to_utf_16le): add
Index: gc.c
===================================================================
--- gc.c	(revision 16071)
+++ gc.c	(revision 16072)
@@ -794,6 +794,7 @@
 {
     long n;
 
+    if (end <= start) return;
     n = end - start;
     mark_locations_array(start,n);
 }
@@ -1491,10 +1492,9 @@
     mark_locations_array((VALUE*)save_regs_gc_mark,
 			 sizeof(save_regs_gc_mark) / sizeof(VALUE));
 
-    mark_locations_array(stack_start, stack_end - stack_start);
+    rb_gc_mark_locations(stack_start, stack_end);
 #ifdef __ia64
-    mark_locations_array(th->machine_register_stack_start,
-			 th->machine_register_stack_end - th->machine_register_stack_start);
+    rb_gc_mark_locations(th->machine_register_stack_start, th->machine_register_stack_end);
 #endif
 #if defined(__human68k__) || defined(__mc68000__)
     mark_locations_array((VALUE*)((char*)STACK_END + 2),

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

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