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

ruby-changes:4447

From: ko1@a...
Date: Wed, 9 Apr 2008 21:21:44 +0900 (JST)
Subject: [ruby-changes:4447] knu - Ruby:r15938 (ruby_1_8): * array.c (rb_ary_each, rb_ary_each_index, rb_ary_reverse_each,

knu	2008-04-09 21:21:25 +0900 (Wed, 09 Apr 2008)

  New Revision: 15938

  Modified files:
    branches/ruby_1_8/ChangeLog
    branches/ruby_1_8/array.c

  Log:
    * array.c (rb_ary_each, rb_ary_each_index, rb_ary_reverse_each,
      rb_ary_reject_bang): Calling Array#each, #each_index,
      #reverse_each, #reject! or #delete_if without a block now
      returns an enumerator; backported from 1.9.


  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8/ChangeLog?r1=15938&r2=15937&diff_format=u
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8/array.c?r1=15938&r2=15937&diff_format=u

Index: ruby_1_8/array.c
===================================================================
--- ruby_1_8/array.c	(revision 15937)
+++ ruby_1_8/array.c	(revision 15938)
@@ -1162,6 +1162,7 @@
 {
     long i;
 
+    RETURN_ENUMERATOR(ary, 0, 0)
     for (i=0; i<RARRAY(ary)->len; i++) {
 	rb_yield(RARRAY(ary)->ptr[i]);
     }
@@ -1189,6 +1190,7 @@
 {
     long i;
 
+    RETURN_ENUMERATOR(ary, 0, 0);
     for (i=0; i<RARRAY(ary)->len; i++) {
 	rb_yield(LONG2NUM(i));
     }
@@ -1214,8 +1216,10 @@
 rb_ary_reverse_each(ary)
     VALUE ary;
 {
-    long len = RARRAY(ary)->len;
+    long len;
 
+    RETURN_ENUMERATOR(ary, 0, 0);
+    len = RARRAY(ary)->len;
     while (len--) {
 	rb_yield(RARRAY(ary)->ptr[len]);
 	if (RARRAY(ary)->len < len) {
@@ -2033,6 +2037,7 @@
 {
     long i1, i2;
 
+    RETURN_ENUMERATOR(ary, 0, 0);
     rb_ary_modify(ary);
     for (i1 = i2 = 0; i1 < RARRAY(ary)->len; i1++) {
 	VALUE v = RARRAY(ary)->ptr[i1];
Index: ruby_1_8/ChangeLog
===================================================================
--- ruby_1_8/ChangeLog	(revision 15937)
+++ ruby_1_8/ChangeLog	(revision 15938)
@@ -1,3 +1,10 @@
+Wed Apr  9 21:13:05 2008  Akinori MUSHA  <knu@i...>
+
+	* array.c (rb_ary_each, rb_ary_each_index, rb_ary_reverse_each,
+	  rb_ary_reject_bang): Calling Array#each, #each_index,
+	  #reverse_each, #reject! or #delete_if without a block now
+	  returns an enumerator; backported from 1.9.
+
 Wed Apr  9 20:47:16 2008  Akinori MUSHA  <knu@i...>
 
 	* array.c (rb_ary_index, rb_ary_index): Array#index and #rindex

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

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