aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--array.c2
2 files changed, 5 insertions, 1 deletions
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 <s.wanabe@gmail.com>
+
+ * array.c: don't recycle shared-array while sort!.
+
Fri Oct 17 22:04:38 2008 wanabe <s.wanabe@gmail.com>
* 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);
}