Change T_ZOMBIE flag check from an assertion

Assertions are only enable on debug builds, so it will now check for
flags of T_ZOMBIE objects on all builds in GC.verify_internal_consistency.
This commit is contained in:
Peter Zhu 2024-02-26 11:50:08 -05:00
parent c990cc706c
commit 48f433fd40

7
gc.c
View File

@ -7554,8 +7554,13 @@ verify_internal_consistency_i(void *page_start, void *page_end, size_t stride,
}
else {
if (BUILTIN_TYPE(obj) == T_ZOMBIE) {
GC_ASSERT((RBASIC(obj)->flags & ~ZOMBIE_OBJ_KEPT_FLAGS) == T_ZOMBIE);
data->zombie_object_count++;
if ((RBASIC(obj)->flags & ~ZOMBIE_OBJ_KEPT_FLAGS) != T_ZOMBIE) {
fprintf(stderr, "verify_internal_consistency_i: T_ZOMBIE has extra flags set: %s\n",
obj_info(obj));
data->err_count++;
}
}
}
if (poisoned) {