Add check for finalizer in verify_internal_constency

This adds a check in GC.verify_internal_constency that FL_FINALIZE flags
is set if, and only if it is in finalizer_table.
This commit is contained in:
Peter Zhu 2024-02-26 11:50:21 -05:00
Родитель 48f433fd40
Коммит 7b69563b36
1 изменённых файлов: 7 добавлений и 0 удалений

7
gc.c
Просмотреть файл

@ -7561,6 +7561,13 @@ verify_internal_consistency_i(void *page_start, void *page_end, size_t stride,
obj_info(obj)); obj_info(obj));
data->err_count++; data->err_count++;
} }
if (!!FL_TEST(obj, FL_FINALIZE) != !!st_is_member(finalizer_table, obj)) {
fprintf(stderr, "verify_internal_consistency_i: FL_FINALIZE %s but %s finalizer_table: %s\n",
FL_TEST(obj, FL_FINALIZE) ? "set" : "not set", st_is_member(finalizer_table, obj) ? "in" : "not in",
obj_info(obj));
data->err_count++;
}
} }
} }
if (poisoned) { if (poisoned) {