ruby-changes:4832
From: ko1@a...
Date: Thu, 8 May 2008 15:14:53 +0900 (JST)
Subject: [ruby-changes:4832] nobu - Ruby:r16326 (trunk): * array.c (rb_ary_sort_bang): freeze temporary array.
nobu 2008-05-08 15:14:36 +0900 (Thu, 08 May 2008)
New Revision: 16326
Modified files:
trunk/ChangeLog
trunk/array.c
Log:
* array.c (rb_ary_sort_bang): freeze temporary array.
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/array.c?r1=16326&r2=16325&diff_format=u
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ChangeLog?r1=16326&r2=16325&diff_format=u
Index: array.c
===================================================================
--- array.c (revision 16325)
+++ array.c (revision 16326)
@@ -1513,13 +1513,16 @@
RBASIC(tmp)->klass = 0;
ruby_qsort(RARRAY_PTR(tmp), RARRAY_LEN(tmp), sizeof(VALUE),
rb_block_given_p()?sort_1:sort_2, &RBASIC(tmp)->klass);
+ sort_reentered(&RBASIC(tmp)->klass);
RARRAY(ary)->ptr = RARRAY(tmp)->ptr;
RARRAY(ary)->len = RARRAY(tmp)->len;
RARRAY(ary)->aux.capa = RARRAY(tmp)->aux.capa;
FL_UNSET(ary, ELTS_SHARED);
RARRAY(tmp)->ptr = 0;
RARRAY(tmp)->len = 0;
+ RARRAY(tmp)->aux.capa = 0;
RBASIC(tmp)->klass = RBASIC(ary)->klass;
+ OBJ_FREEZE(tmp);
}
return ary;
}
Index: ChangeLog
===================================================================
--- ChangeLog (revision 16325)
+++ ChangeLog (revision 16326)
@@ -1,3 +1,7 @@
+Thu May 8 15:14:34 2008 Nobuyoshi Nakada <nobu@r...>
+
+ * array.c (rb_ary_sort_bang): freeze temporary array.
+
Thu May 8 13:19:18 2008 Nobuyoshi Nakada <nobu@r...>
* vm.c (rb_thread_mark): mark stat_insn_usage only when ptr is not
--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/