mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* gc.c (rb_objspace_call_finalizer): call gc_mark_stacked_objects
at suitable point. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37083 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
6aa2aabd8b
commit
2f9f17ac98
2 changed files with 6 additions and 3 deletions
|
@ -1,3 +1,8 @@
|
|||
Thu Oct 4 17:24:51 2012 Narihiro Nakamura <authornari@gmail.com>
|
||||
|
||||
* gc.c (rb_objspace_call_finalizer): call gc_mark_stacked_objects
|
||||
at suitable point.
|
||||
|
||||
Thu Oct 4 16:31:29 2012 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||
|
||||
* gc.c (rb_objspace_call_finalizer): mark self-referencing finalizers
|
||||
|
|
4
gc.c
4
gc.c
|
@ -1484,9 +1484,6 @@ rb_objspace_call_finalizer(rb_objspace_t *objspace)
|
|||
RVALUE *final_list = 0;
|
||||
size_t i;
|
||||
|
||||
mark_tbl(objspace, finalizer_table);
|
||||
gc_mark_stacked_objects(objspace);
|
||||
|
||||
/* run finalizers */
|
||||
rest_sweep(objspace);
|
||||
|
||||
|
@ -1497,6 +1494,7 @@ rb_objspace_call_finalizer(rb_objspace_t *objspace)
|
|||
/* because mark will not be removed */
|
||||
finalize_deferred(objspace);
|
||||
mark_tbl(objspace, finalizer_table);
|
||||
gc_mark_stacked_objects(objspace);
|
||||
st_foreach(finalizer_table, chain_finalized_object,
|
||||
(st_data_t)&deferred_final_list);
|
||||
} while (deferred_final_list);
|
||||
|
|
Loading…
Add table
Reference in a new issue