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/