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

ruby-changes:2925

From: ko1@a...
Date: 21 Dec 2007 16:33:42 +0900
Subject: [ruby-changes:2925] nobu - Ruby:r14416 (trunk): * enumerator.c (enumerator_iter_i): adjusted for rb_block_call_func.

nobu	2007-12-21 16:33:31 +0900 (Fri, 21 Dec 2007)

  New Revision: 14416

  Modified files:
    trunk/ChangeLog
    trunk/enumerator.c
    trunk/include/ruby/ruby.h

  Log:
    * enumerator.c (enumerator_iter_i): adjusted for rb_block_call_func.
    
    * include/ruby/ruby.h (rb_block_call_func): function to be called back
      as block.


  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/include/ruby/ruby.h?r1=14416&r2=14415
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ChangeLog?r1=14416&r2=14415
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/enumerator.c?r1=14416&r2=14415

Index: include/ruby/ruby.h
===================================================================
--- include/ruby/ruby.h	(revision 14415)
+++ include/ruby/ruby.h	(revision 14416)
@@ -772,6 +772,8 @@
 PRINTF_ARGS(void rb_warn(const char*, ...), 1, 2);
 PRINTF_ARGS(void rb_compile_warn(const char *, int, const char*, ...), 3, 4);
 
+typedef VALUE rb_block_call_func(VALUE, VALUE, int, VALUE*);
+
 VALUE rb_each(VALUE);
 VALUE rb_yield(VALUE);
 VALUE rb_yield_values(int n, ...);
Index: ChangeLog
===================================================================
--- ChangeLog	(revision 14415)
+++ ChangeLog	(revision 14416)
@@ -1,3 +1,10 @@
+Fri Dec 21 16:33:28 2007  Nobuyoshi Nakada  <nobu@r...>
+
+	* enumerator.c (enumerator_iter_i): adjusted for rb_block_call_func.
+
+	* include/ruby/ruby.h (rb_block_call_func): function to be called back
+	  as block.
+
 Fri Dec 21 16:25:25 2007  Martin Duerst  <duerst@i...>
 
 	* common.mk, transcode_data_iso_8859.c: renamed to
@@ -36,7 +43,6 @@
 	* encoding.c (rb_to_encoding): returns default encoding if no
 	  corresponding encoding found.
 
->>>>>>> .r14414
 Fri Dec 21 15:24:22 2007  Shugo Maeda  <shugo@r...>
 
 	* lib/net/imap.rb (initialize): accept service name.  changed
@@ -73,7 +79,6 @@
 
 	* re.c: change "character encodings differ" error messages.
 
->>>>>>> .r14409
 Fri Dec 21 13:46:58 2007  Nobuyoshi Nakada  <nobu@r...>
 
 	* encoding.c (rb_enc_register): set encoding constant.
Index: enumerator.c
===================================================================
--- enumerator.c	(revision 14415)
+++ enumerator.c	(revision 14416)
@@ -35,14 +35,11 @@
     return rb_proc_call(proc, args);
 }
 
-struct enumerator;
-typedef VALUE enum_iter(VALUE, struct enumerator *, VALUE);
-
 struct enumerator {
     VALUE method;
     VALUE proc;
     VALUE args;
-    enum_iter *iter;
+    rb_block_call_func *iter;
     VALUE fib;
     VALUE dst;
     VALUE no_next;
@@ -77,8 +74,9 @@
 }
 
 static VALUE
-enumerator_iter_i(VALUE i, struct enumerator *e, VALUE argc)
+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));
 }
 
@@ -241,7 +239,7 @@
 	ptr->iter = enumerator_iter_i;
     }
     else {
-	ptr->iter = (enum_iter *)enumerator_each_i;
+	ptr->iter = enumerator_each_i;
     }
     if (argc) ptr->args = rb_ary_new4(argc, argv);
     ptr->fib = 0;
@@ -369,7 +367,6 @@
 static VALUE
 next_ii(VALUE i, VALUE obj)
 {
-    struct enumerator *e = enumerator_ptr(obj);
     rb_fiber_yield(1, &i);
     return Qnil;
 }

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

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