summaryrefslogtreecommitdiff
path: root/gc.c
diff options
context:
space:
mode:
authorPeter Zhu <peter@peterzhu.ca>2024-02-26 11:50:21 -0500
committerPeter Zhu <peter@peterzhu.ca>2024-02-28 10:41:11 -0500
commit7b69563b365317fb9c70e4bed996b5871ef7889a (patch)
treed909cadcfc1cea0b2f2ac03d225a2f1820921be6 /gc.c
parent48f433fd408f5f493aa0ac4638ee9ab773b8d10c (diff)
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.
Diffstat (limited to 'gc.c')
-rw-r--r--gc.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/gc.c b/gc.c
index 06a99f6641..d488286ff9 100644
--- a/gc.c
+++ b/gc.c
@@ -7561,6 +7561,13 @@ verify_internal_consistency_i(void *page_start, void *page_end, size_t stride,
obj_info(obj));
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) {