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

ruby-changes:4652

From: ko1@a...
Date: Tue, 22 Apr 2008 19:36:47 +0900 (JST)
Subject: [ruby-changes:4652] knu - Ruby:r16146 (trunk): * enumerator.c (enumerator_initialize): Remove an undocumented

knu	2008-04-22 19:36:31 +0900 (Tue, 22 Apr 2008)

  New Revision: 16146

  Modified files:
    trunk/ChangeLog
    trunk/enumerator.c

  Log:
    * enumerator.c (enumerator_initialize): Remove an undocumented
      feature (passing a block to the constructor) that's broken.
      This is not what I intended.


  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ChangeLog?r1=16146&r2=16145&diff_format=u
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/enumerator.c?r1=16146&r2=16145&diff_format=u

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 16145)
+++ ChangeLog	(revision 16146)
@@ -1,3 +1,9 @@
+Tue Apr 22 19:23:05 2008  Akinori MUSHA  <knu@i...>
+
+	* enumerator.c (enumerator_initialize): Remove an undocumented
+	  feature (passing a block to the constructor) that's broken.
+	  This is not what I intended.
+
 Tue Apr 22 17:54:05 2008  URABE Shyouhei  <shyouhei@r...>
 
 	* vm_core.h (exec_event_hooks): ``inline'' is a type modifier, not
Index: enumerator.c
===================================================================
--- enumerator.c	(revision 16145)
+++ enumerator.c	(revision 16146)
@@ -26,19 +26,9 @@
 
 VALUE rb_eStopIteration;
 
-static VALUE
-proc_call(VALUE proc, VALUE args)
-{
-    if (TYPE(args) != T_ARRAY) {
-	args = rb_ary_new3(1, args);
-    }
-    return rb_proc_call(proc, args);
-}
-
 struct enumerator {
     VALUE obj;
     ID    meth;
-    VALUE proc;
     VALUE args;
     rb_block_call_func *iter;
     VALUE fib;
@@ -51,7 +41,6 @@
 {
     struct enumerator *ptr = p;
     rb_gc_mark(ptr->obj);
-    rb_gc_mark(ptr->proc);
     rb_gc_mark(ptr->args);
     rb_gc_mark(ptr->fib);
     rb_gc_mark(ptr->dst);
@@ -74,13 +63,6 @@
     return ptr;
 }
 
-static VALUE
-enumerator_iter_i(VALUE i, VALUE enum_obj, int argc, VALUE *argv)
-{
-    struct enumerator *e = (struct enumerator *)enum_obj;
-    return rb_yield(proc_call(e->proc, i));
-}
-
 /*
  *  call-seq:
  *    obj.to_enum(method = :each, *args)
@@ -237,13 +219,7 @@
 
     ptr->obj  = obj;
     ptr->meth = rb_to_id(meth);
-    if (rb_block_given_p()) {
-	ptr->proc = rb_block_proc();
-	ptr->iter = enumerator_iter_i;
-    }
-    else {
-	ptr->iter = enumerator_each_i;
-    }
+    ptr->iter = enumerator_each_i;
     if (argc) ptr->args = rb_ary_new4(argc, argv);
     ptr->fib = 0;
     ptr->dst = Qnil;
@@ -297,7 +273,6 @@
 
     ptr1->obj  = ptr0->obj;
     ptr1->meth = ptr0->meth;
-    ptr1->proc = ptr0->proc;
     ptr1->iter = ptr0->iter;
     ptr1->args = ptr0->args;
     ptr1->fib  = 0;

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

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