ruby-changes:25486
From: marcandre <ko1@a...>
Date: Thu, 8 Nov 2012 04:46:28 +0900 (JST)
Subject: [ruby-changes:25486] marcandRe: r37543 (trunk): * include/ruby/intern.h: Restore rb_enumeratorize as it was before r37497
marcandre 2012-11-08 04:46:16 +0900 (Thu, 08 Nov 2012) New Revision: 37543 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=37543 Log: * include/ruby/intern.h: Restore rb_enumeratorize as it was before r37497 and introduce rb_enumeratorize_with_size instead. [#7302] * enumerator.c: ditto. Modified files: trunk/ChangeLog trunk/enumerator.c trunk/include/ruby/intern.h Index: include/ruby/intern.h =================================================================== --- include/ruby/intern.h (revision 37542) +++ include/ruby/intern.h (revision 37543) @@ -201,10 +201,11 @@ /* enum.c */ VALUE rb_enum_values_pack(int, VALUE*); /* enumerator.c */ -VALUE rb_enumeratorize(VALUE, VALUE, int, VALUE *, VALUE (*)(ANYARGS)); +VALUE rb_enumeratorize(VALUE, VALUE, int, VALUE *); +VALUE rb_enumeratorize_with_size(VALUE, VALUE, int, VALUE *, VALUE (*)(ANYARGS)); #define RETURN_SIZED_ENUMERATOR(obj, argc, argv, size_fn) do { \ if (!rb_block_given_p()) \ - return rb_enumeratorize((obj), ID2SYM(rb_frame_this_func()),\ + return rb_enumeratorize_with_size((obj), ID2SYM(rb_frame_this_func()),\ (argc), (argv), (size_fn)); \ } while (0) #define RETURN_ENUMERATOR(obj, argc, argv) RETURN_SIZED_ENUMERATOR(obj, argc, argv, 0) Index: ChangeLog =================================================================== --- ChangeLog (revision 37542) +++ ChangeLog (revision 37543) @@ -1,3 +1,10 @@ +Thu Nov 8 04:45:21 2012 Marc-Andre Lafortune <ruby-core@m...> + + * include/ruby/intern.h: Restore rb_enumeratorize as it was before + r37497 and introduce rb_enumeratorize_with_size instead. [#7302] + + * enumerator.c: ditto. + Wed Nov 7 15:22:37 2012 NARUSE, Yui <naruse@r...> * numeric.c (ruby_float_step): fix r37514: it yielded with NaN @@ -16,7 +23,7 @@ * eval.c (rb_mod_refine): set RMODULE_IS_REFINEMENT to a created refinement module, and don't override method_added. - + * vm_method.c (rb_method_entry_make): check redefinition of optimized methods when a method is added to a refinement module. [ruby-core:48970] [Bug #7290] Index: enumerator.c =================================================================== --- enumerator.c (revision 37542) +++ enumerator.c (revision 37543) @@ -224,7 +224,7 @@ --argc; meth = *argv++; } - enumerator = rb_enumeratorize(obj, meth, argc, argv, 0); + enumerator = rb_enumeratorize_with_size(obj, meth, argc, argv, 0); if (rb_block_given_p()) { enumerator_ptr(enumerator)->size = rb_block_proc(); } @@ -426,9 +426,18 @@ return obj; } +/* + * For backwards compatibility; use rb_enumeratorize_with_size + */ VALUE -rb_enumeratorize(VALUE obj, VALUE meth, int argc, VALUE *argv, VALUE (*size_fn)(ANYARGS)) +rb_enumeratorize(VALUE obj, VALUE meth, int argc, VALUE *argv) { + return rb_enumeratorize_with_size(obj, meth, argc, argv, 0); +} + +VALUE +rb_enumeratorize_with_size(VALUE obj, VALUE meth, int argc, VALUE *argv, VALUE (*size_fn)(ANYARGS)) +{ return enumerator_init(enumerator_allocate(rb_cEnumerator), obj, meth, argc, argv, size_fn, Qnil); } -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/