summaryrefslogtreecommitdiff
path: root/gc.c
diff options
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-03-15 03:50:25 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-03-15 03:50:25 +0000
commit6965e73d5f41f2b8be69b1ef3361a69f11594e89 (patch)
tree8e9487c38d0c809a80ec30b1dba56e4b94f4defc /gc.c
parent476eee9d1e2667b98b8706ce3284d70d1ec08c15 (diff)
* gc.c (run_final): frees zombies only. [ruby-dev:38171]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@22971 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'gc.c')
-rw-r--r--gc.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/gc.c b/gc.c
index 972e9d7fee..7eb3a6fd81 100644
--- a/gc.c
+++ b/gc.c
@@ -1960,7 +1960,7 @@ run_final(obj)
objid = rb_obj_id(obj); /* make obj into id */
RBASIC(obj)->klass = 0;
rb_thread_critical = Qtrue;
- if (RDATA(obj)->dfree) {
+ if (BUILTIN_TYPE(obj) == T_ZOMBIE && RDATA(obj)->dfree) {
(*RDATA(obj)->dfree)(DATA_PTR(obj));
}
args[1] = 0;