summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorIvan Maidanski <ivmai@mail.ru>2023-04-12 07:38:42 +0300
committerIvan Maidanski <ivmai@mail.ru>2023-04-12 10:40:10 +0300
commit4f1f9afa07b963904457aebaec3b4438b99c36c9 (patch)
treec26bf854d81f00f490ee510c6b37f7ced1618c45 /include
parent4c0c2e42923f3e4912d848fd034935650e63fe56 (diff)
downloadbdwgc-4f1f9afa07b963904457aebaec3b4438b99c36c9.tar.gz
Add assertion about GC lock to GC_add_roots_inner and its callers
(refactoring) Also, add the assertion to GC_roots_present() and COND_DUMP_CHECKS(). * dyn_load.c [HAVE_DL_ITERATE_PHDR && PT_GNU_RELRO] (GC_register_dynlib_callback): Add assertion that GC lock is held. * dyn_load.c [HAVE_DL_ITERATE_PHDR] (GC_register_dynamic_libraries_dl_iterate_phdr): Likewise. * dyn_load.c [MSWIN32 || MSWINCE || CYGWIN32] (GC_cond_add_roots): Likewise. * dyn_load.c [ALPHA && OSF1 || HPUX || AIX || HAIKU] (GC_register_dynamic_libraries): Likewise. * include/private/gc_priv.h (COND_DUMP_CHECKS): Likewise. * mark_rts.c (GC_roots_present, GC_add_roots_inner): Likewise. * dyn_load.c [MSWIN32 || MSWINCE || CYGWIN32] (GC_cond_add_roots): Check THREADS instead of GC_WIN32_THREADS; check base==limit before stack_top assignment.
Diffstat (limited to 'include')
-rw-r--r--include/private/gc_priv.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/include/private/gc_priv.h b/include/private/gc_priv.h
index ec0cda5c..0149e0ee 100644
--- a/include/private/gc_priv.h
+++ b/include/private/gc_priv.h
@@ -2958,6 +2958,7 @@ GC_INNER void *GC_store_debug_info_inner(void *p, word sz, const char *str,
#define COND_DUMP_CHECKS \
do { \
+ GC_ASSERT(I_HOLD_LOCK()); \
GC_ASSERT(GC_compute_large_free_bytes() == GC_large_free_bytes); \
GC_ASSERT(GC_compute_root_size() == GC_root_size); \
} while (0)