diff --git a/ChangeLog b/ChangeLog index 6bc182b4cb..f66673b2e0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +Sat Oct 18 00:47:51 2008 wanabe + + * array.c: don't recycle shared-array while sort!. + Fri Oct 17 22:04:38 2008 wanabe * array.c: recycle shared-array when it isn't referenced. diff --git a/array.c b/array.c index f4ad44c051..866849e6d2 100644 --- a/array.c +++ b/array.c @@ -177,7 +177,7 @@ rb_ary_decrement_share(VALUE shared) { if (shared) { int num = ARY_SHARED_NUM(shared) - 1; - if (num == 0) { + if (num == 0 && RBASIC(shared)->klass) { rb_ary_free(shared); rb_gc_force_recycle(shared); }