aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwanabe <wanabe@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-10-17 15:51:35 +0000
committerwanabe <wanabe@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-10-17 15:51:35 +0000
commitb29f3640e9ef46a520ba67853b52e9d236a9f6a6 (patch)
tree44da8c194992f2a14f4c2393645bd6ad6d8c3370
parent331cd4eed69b4b9f04590109877ef8af424bf9c9 (diff)
downloadruby-b29f3640e9ef46a520ba67853b52e9d236a9f6a6.tar.gz
* array.c: don't recycle shared-array while sort!.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19825 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-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);
}