ruby-changes:35577
From: glass <ko1@a...>
Date: Sun, 21 Sep 2014 11:23:39 +0900 (JST)
Subject: [ruby-changes:35577] glass:r47659 (trunk): * array.c: use rb_equal_opt() for performance improvement.
glass 2014-09-21 11:23:32 +0900 (Sun, 21 Sep 2014) New Revision: 47659 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=47659 Log: * array.c: use rb_equal_opt() for performance improvement. [ruby-core:64954] [Feature #10227] Modified files: trunk/ChangeLog trunk/array.c Index: array.c =================================================================== --- array.c (revision 47658) +++ array.c (revision 47659) @@ -3846,9 +3846,15 @@ VALUE https://github.com/ruby/ruby/blob/trunk/array.c#L3846 rb_ary_includes(VALUE ary, VALUE item) { long i; + VALUE e; for (i=0; i<RARRAY_LEN(ary); i++) { - if (rb_equal(RARRAY_AREF(ary, i), item)) { + e = RARRAY_AREF(ary, i); + switch (rb_equal_opt(e, item)) { + case Qundef: + if (rb_equal(e, item)) return Qtrue; + break; + case Qtrue: return Qtrue; } } Index: ChangeLog =================================================================== --- ChangeLog (revision 47658) +++ ChangeLog (revision 47659) @@ -1,3 +1,8 @@ https://github.com/ruby/ruby/blob/trunk/ChangeLog#L1 +Sat Sep 20 03:46:58 2014 Masaki Matsushita <glass.saga@g...> + + * array.c: use rb_equal_opt() for performance improvement. + [ruby-core:64954] [Feature #10227] + Sun Sep 21 11:16:56 2014 Masaki Suketa <masaki.suketa@n...> * ext/win32ole/win32ole.c (rbtime2vtdate, vtdate2rbtime): fix -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/