ruby-changes:13805
From: matz <ko1@a...>
Date: Sun, 1 Nov 2009 01:14:58 +0900 (JST)
Subject: [ruby-changes:13805] Ruby:r25603 (trunk): * enum.c (enum_count): remove optimization using #size.
matz 2009-11-01 01:14:38 +0900 (Sun, 01 Nov 2009) New Revision: 25603 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=25603 Log: * enum.c (enum_count): remove optimization using #size. revert r25560. * vm_eval.c (rb_funcall_no_recursive): remove method. Modified files: trunk/ChangeLog trunk/enum.c trunk/vm_eval.c Index: ChangeLog =================================================================== --- ChangeLog (revision 25602) +++ ChangeLog (revision 25603) @@ -1,3 +1,10 @@ +Sat Oct 31 23:44:35 2009 Yukihiro Matsumoto <matz@r...> + + * enum.c (enum_count): remove optimization using #size. + revert r25560. + + * vm_eval.c (rb_funcall_no_recursive): remove method. + Sat Oct 31 23:28:49 2009 Yukihiro Matsumoto <matz@r...> * vm_eval.c (check_funcall): logic updated according to Index: enum.c =================================================================== --- enum.c (revision 25602) +++ enum.c (revision 25603) @@ -119,8 +119,6 @@ return Qnil; } -extern VALUE rb_funcall_no_recursive(VALUE, ID, int, VALUE*, VALUE (*)()); - /* * call-seq: * enum.count => int @@ -151,10 +149,6 @@ func = count_iter_i; } else { - VALUE tmp; - - tmp = rb_funcall_no_recursive(obj, id_size, 0, 0, enum_count); - if (tmp != Qundef) return tmp; func = count_all_i; } } Index: vm_eval.c =================================================================== --- vm_eval.c (revision 25602) +++ vm_eval.c (revision 25603) @@ -263,8 +263,9 @@ } static VALUE -check_funcall(rb_method_entry_t *me, VALUE recv, ID mid, int argc, VALUE *argv) +check_funcall(VALUE recv, ID mid, int argc, VALUE *argv) { + rb_method_entry_t *me = rb_search_method_entry(recv, mid); rb_thread_t *th = GET_THREAD(); int call_status = rb_method_call_status(th, me, CALL_FCALL, Qundef); @@ -291,22 +292,9 @@ VALUE rb_check_funcall(VALUE recv, ID mid, int argc, VALUE *argv) { - return check_funcall(rb_search_method_entry(recv, mid), recv, mid, argc, argv); + return check_funcall(recv, mid, argc, argv); } -VALUE -rb_funcall_no_recursive(VALUE recv, ID mid, int argc, VALUE *argv, VALUE (*func)()) -{ - rb_method_entry_t *me = rb_search_method_entry(recv, mid); - int call_status; - - if (!me) return Qundef; - if (me->def && me->def->type == VM_METHOD_TYPE_CFUNC && - me->def->body.cfunc.func == func) - return Qundef; - return check_funcall(me, recv, mid, argc, argv); -} - static inline rb_method_entry_t * rb_search_method_entry(VALUE recv, ID mid) { -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/