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