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

ruby-changes:22613

From: nobu <ko1@a...>
Date: Fri, 17 Feb 2012 15:21:06 +0900 (JST)
Subject: [ruby-changes:22613] nobu:r34662 (trunk): * enum.c (enum_each_slice): arrays to be yielded can be newly

nobu	2012-02-17 15:20:56 +0900 (Fri, 17 Feb 2012)

  New Revision: 34662

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

  Log:
    * enum.c (enum_each_slice): arrays to be yielded can be newly
      created in the block.

  Modified files:
    trunk/ChangeLog
    trunk/enum.c

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 34661)
+++ ChangeLog	(revision 34662)
@@ -1,5 +1,8 @@
-Fri Feb 17 13:24:43 2012  Nobuyoshi Nakada  <nobu@r...>
+Fri Feb 17 15:20:30 2012  Nobuyoshi Nakada  <nobu@r...>
 
+	* enum.c (enum_each_slice): arrays to be yielded can be newly
+	  created in the block.
+
 	* enum.c: move work variables to objects not to let called blocks
 	  access stack area out of scope.  [Bug #5801]
 
Index: enum.c
===================================================================
--- enum.c	(revision 34661)
+++ enum.c	(revision 34662)
@@ -1828,6 +1828,7 @@
     ary = rb_ary_new2(size);
     memo = NEW_MEMO(ary, 0, size);
     rb_block_call(obj, id_each, 0, 0, each_slice_i, (VALUE)memo);
+    ary = memo->u1.value;
     if (RARRAY_LEN(ary) > 0) rb_yield(ary);
 
     return Qnil;

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

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