From 7b69563b365317fb9c70e4bed996b5871ef7889a Mon Sep 17 00:00:00 2001 From: Peter Zhu Date: Mon, 26 Feb 2024 11:50:21 -0500 Subject: [PATCH] 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. --- gc.c | 7 +++++++ 1 file changed, 7 insertions(+) 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) {