diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-03-15 03:50:25 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-03-15 03:50:25 +0000 |
commit | 6965e73d5f41f2b8be69b1ef3361a69f11594e89 (patch) | |
tree | 8e9487c38d0c809a80ec30b1dba56e4b94f4defc | |
parent | 476eee9d1e2667b98b8706ce3284d70d1ec08c15 (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
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | gc.c | 2 |
2 files changed, 5 insertions, 1 deletions
@@ -1,3 +1,7 @@ +Sun Mar 15 12:50:23 2009 Nobuyoshi Nakada <[email protected]> + + * gc.c (run_final): frees zombies only. [ruby-dev:38171] + Sun Mar 15 04:19:19 2009 Nobuyoshi Nakada <[email protected]> * gc.c (rb_gc_call_finalizer_at_exit): leave Thread objects @@ -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; |