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++;
|
||