[前][次][番号順一覧][スレッド一覧]

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/

[前][次][番号順一覧][スレッド一覧]