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

ruby-changes:16684

From: nobu <ko1@a...>
Date: Mon, 19 Jul 2010 12:33:47 +0900 (JST)
Subject: [ruby-changes:16684] Ruby:r28680 (trunk): * array.c (rb_ary_clear): should not unshare embedded array, and

nobu	2010-07-19 12:33:33 +0900 (Mon, 19 Jul 2010)

  New Revision: 28680

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

  Log:
    * array.c (rb_ary_clear): should not unshare embedded array, and
      should make unshared array embedded.

  Modified files:
    trunk/ChangeLog
    trunk/array.c

Index: array.c
===================================================================
--- array.c	(revision 28679)
+++ array.c	(revision 28680)
@@ -2775,7 +2775,10 @@
     rb_ary_modify_check(ary);
     ARY_SET_LEN(ary, 0);
     if (ARY_SHARED_P(ary)) {
-	rb_ary_unshare(ary);
+	if (!ARY_EMBED_P(ary)) {
+	    rb_ary_unshare(ary);
+	    FL_SET_EMBED(ary);
+	}
     }
     else if (ARY_DEFAULT_SIZE * 2 < ARY_CAPA(ary)) {
 	ary_resize_capa(ary, ARY_DEFAULT_SIZE * 2);
Index: ChangeLog
===================================================================
--- ChangeLog	(revision 28679)
+++ ChangeLog	(revision 28680)
@@ -1,3 +1,8 @@
+Mon Jul 19 12:33:29 2010  Nobuyoshi Nakada  <nobu@r...>
+
+	* array.c (rb_ary_clear): should not unshare embedded array, and
+	  should make unshared array embedded.
+
 Mon Jul 19 09:00:58 2010  Nobuyoshi Nakada  <nobu@r...>
 
 	* NEWS (Kernel#instance_eval): add an incompatible change since

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

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