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

ruby-changes:16097

From: shyouhei <ko1@a...>
Date: Fri, 28 May 2010 11:43:49 +0900 (JST)
Subject: [ruby-changes:16097] Ruby:r28048 (trunk): * array.c (rb_ary_product): Do not rely on GC, t0 should be

shyouhei	2010-05-28 11:43:34 +0900 (Fri, 28 May 2010)

  New Revision: 28048

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=28048

  Log:
    * array.c (rb_ary_product): Do not rely on GC, t0 should be
      checked explicitly.

  Modified files:
    trunk/ChangeLog
    trunk/array.c

Index: array.c
===================================================================
--- array.c	(revision 28047)
+++ array.c	(revision 28048)
@@ -4345,10 +4345,14 @@
 
 	/* put it on the result array */
 	if(NIL_P(result)) {
+	    FL_SET(t0, FL_USER5);
 	    rb_yield(subarray);
-	    if (RBASIC(t0)->klass) {
+	    if (! FL_TEST(t0, FL_USER5)) {
 		rb_raise(rb_eRuntimeError, "product reentered");
 	    }
+	    else {
+		FL_UNSET(t0, FL_USER5);
+	    }
 	}
 	else {
 	    rb_ary_push(result, subarray);
Index: ChangeLog
===================================================================
--- ChangeLog	(revision 28047)
+++ ChangeLog	(revision 28048)
@@ -1,3 +1,8 @@
+Fri May 28 11:40:07 2010  URABE Shyouhei  <shyouhei@r...>
+
+	* array.c (rb_ary_product): Do not rely on GC, t0 should be
+	  checked explicitly.
+
 Fri May 28 10:40:37 2010  Nobuyoshi Nakada  <nobu@r...>
 
 	* lib/mkmf.rb (checking_for): ignore toplevel.

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

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