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

ruby-changes:31161

From: glass <ko1@a...>
Date: Thu, 10 Oct 2013 23:03:06 +0900 (JST)
Subject: [ruby-changes:31161] glass:r43240 (trunk): * array.c (rb_ary_or): use rb_hash_keys().

glass	2013-10-10 23:02:52 +0900 (Thu, 10 Oct 2013)

  New Revision: 43240

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=43240

  Log:
    * array.c (rb_ary_or): use rb_hash_keys().

  Modified files:
    trunk/ChangeLog
    trunk/array.c
Index: array.c
===================================================================
--- array.c	(revision 43239)
+++ array.c	(revision 43240)
@@ -4004,21 +4004,8 @@ rb_ary_or(VALUE ary1, VALUE ary2) https://github.com/ruby/ruby/blob/trunk/array.c#L4004
     long i;
 
     ary2 = to_ary(ary2);
-    ary3 = rb_ary_new2(RARRAY_LEN(ary1)+RARRAY_LEN(ary2));
     hash = ary_add_hash(ary_make_hash(ary1), ary2);
-
-    for (i=0; i<RARRAY_LEN(ary1); i++) {
-	vv = (st_data_t)(v = rb_ary_elt(ary1, i));
-	if (st_delete(rb_hash_tbl_raw(hash), &vv, 0)) {
-	    rb_ary_push(ary3, v);
-	}
-    }
-    for (i=0; i<RARRAY_LEN(ary2); i++) {
-	vv = (st_data_t)(v = rb_ary_elt(ary2, i));
-	if (st_delete(rb_hash_tbl_raw(hash), &vv, 0)) {
-	    rb_ary_push(ary3, v);
-	}
-    }
+    ary3 = rb_hash_keys(hash);
     ary_recycle_hash(hash);
     return ary3;
 }
Index: ChangeLog
===================================================================
--- ChangeLog	(revision 43239)
+++ ChangeLog	(revision 43240)
@@ -1,3 +1,7 @@ https://github.com/ruby/ruby/blob/trunk/ChangeLog#L1
+Thu Oct 10 23:01:16 2013  Masaki Matsushita  <glass.saga@g...>
+
+	* array.c (rb_ary_or): use rb_hash_keys().
+
 Thu Oct 10 21:36:16 2013  Masaki Matsushita  <glass.saga@g...>
 
 	* array.c (rb_ary_compact_bang): use ary_resize_smaller().

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

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