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

ruby-changes:18471

From: akr <ko1@a...>
Date: Sat, 8 Jan 2011 21:48:23 +0900 (JST)
Subject: [ruby-changes:18471] Ruby:r30494 (trunk): * enum.c (enum_sort_by): use rb_ary_resize.

akr	2011-01-08 21:48:12 +0900 (Sat, 08 Jan 2011)

  New Revision: 30494

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

  Log:
    * enum.c (enum_sort_by): use rb_ary_resize.
      (ary_cutoff): removed.

  Modified files:
    trunk/ChangeLog
    trunk/enum.c

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 30493)
+++ ChangeLog	(revision 30494)
@@ -1,3 +1,8 @@
+Sat Jan  8 21:47:26 2011  Tanaka Akira  <akr@f...>
+
+	* enum.c (enum_sort_by): use rb_ary_resize.
+	  (ary_cutoff): removed.
+
 Sat Jan  8 21:24:17 2011  Tanaka Akira  <akr@f...>
 
 	* pack.c (swapf): compilation condition simplified.
Index: enum.c
===================================================================
--- enum.c	(revision 30493)
+++ enum.c	(revision 30494)
@@ -812,19 +812,6 @@
     return rb_cmpint(rb_funcall(a, id_cmp, 1, b), a, b);
 }
 
-static void
-ary_cutoff(VALUE ary, long len)
-{
-    long i;
-    if (RBASIC(ary)->flags & RARRAY_EMBED_FLAG) {
-	for (i=RARRAY_LEN(ary)-len; 0<i; i--)
-	    rb_ary_pop(ary);
-    }
-    else {
-        RARRAY(ary)->as.heap.len = len;
-    }
-}
-
 /*
  *  call-seq:
  *     enum.sort_by {| obj | block }    -> array
@@ -918,7 +905,7 @@
     rb_ary_store(data.buf, SORT_BY_BUFSIZE*2-1, Qnil);
     rb_block_call(obj, id_each, 0, 0, sort_by_i, (VALUE)&data);
     if (data.n) {
-	ary_cutoff(data.buf, data.n*2);
+	rb_ary_resize(data.buf, data.n*2);
 	rb_ary_concat(ary, data.buf);
     }
     if (RARRAY_LEN(ary) > 2) {
@@ -931,7 +918,7 @@
     for (i=1; i<RARRAY_LEN(ary); i+=2) {
 	RARRAY_PTR(ary)[i/2] = RARRAY_PTR(ary)[i];
     }
-    ary_cutoff(ary, RARRAY_LEN(ary)/2);
+    rb_ary_resize(ary, RARRAY_LEN(ary)/2);
     RBASIC(ary)->klass = rb_cArray;
     OBJ_INFECT(ary, obj);
 

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

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