summaryrefslogtreecommitdiff
path: root/finalize.c
diff options
context:
space:
mode:
Diffstat (limited to 'finalize.c')
-rw-r--r--finalize.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/finalize.c b/finalize.c
index 60279e52..6a75451a 100644
--- a/finalize.c
+++ b/finalize.c
@@ -166,6 +166,7 @@ STATIC int GC_register_disappearing_link_inner(
struct disappearing_link * new_dl;
DCL_LOCK_STATE;
+ GC_ASSERT(GC_is_initialized);
if (EXPECT(GC_find_leak, FALSE)) return GC_UNIMPLEMENTED;
# ifdef GC_ASSERTIONS
GC_noop1((word)(*link)); /* check accessibility */
@@ -684,11 +685,13 @@ STATIC void GC_register_finalizer_inner(void * obj,
hdr *hhdr = NULL; /* initialized to prevent warning. */
DCL_LOCK_STATE;
+ GC_ASSERT(GC_is_initialized);
if (EXPECT(GC_find_leak, FALSE)) {
/* No-op. *ocd and *ofn remain unchanged. */
return;
}
LOCK();
+ GC_ASSERT(obj != NULL && GC_base_C(obj) == obj);
if (EXPECT(NULL == GC_fnlz_roots.fo_head, FALSE)
|| EXPECT(GC_fo_entries > ((word)1 << GC_log_fo_table_size), FALSE)) {
GC_grow_table((struct hash_chain_entry ***)&GC_fnlz_roots.fo_head,