Bug #9205 » fix_assertion_fail.patch
gc.c → gc.c.new | ||
---|---|---|
#define nomem_error GET_VM()->special_exceptions[ruby_error_nomemory]
|
||
int disable_deferred = 0;
|
||
int ruby_gc_debug_indent = 0;
|
||
VALUE rb_mGC;
|
||
int ruby_disable_gc_stress = 0;
|
||
... | ... | |
{
|
||
RVALUE *p = heap_pages_deferred_final;
|
||
heap_pages_deferred_final = 0;
|
||
disable_deferred = 1;
|
||
if (p) {
|
||
finalize_list(objspace, p);
|
||
}
|
||
disable_deferred = 0;
|
||
}
|
||
static void
|
||
... | ... | |
if (obj_free(objspace, (VALUE)p)) {
|
||
final_slots++;
|
||
}
|
||
else if (FL_TEST(p, FL_FINALIZE)) {
|
||
else if (FL_TEST(p, FL_FINALIZE) && !disable_deferred) {
|
||
RDATA(p)->dfree = 0;
|
||
make_deferred(objspace,p);
|
||
final_slots++;
|