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