diff --git a/include/jemalloc/internal/emap.h b/include/jemalloc/internal/emap.h index c4b40142..b51a0c53 100644 --- a/include/jemalloc/internal/emap.h +++ b/include/jemalloc/internal/emap.h @@ -27,7 +27,7 @@ struct emap_full_alloc_ctx_s { extern emap_t emap_global; -bool emap_init(emap_t *emap); +bool emap_init(emap_t *emap, bool zeroed); /* * Grab the lock or locks associated with the edata or edatas indicated (which diff --git a/src/emap.c b/src/emap.c index ae0d3127..200a7828 100644 --- a/src/emap.c +++ b/src/emap.c @@ -22,9 +22,9 @@ enum emap_lock_result_e { typedef enum emap_lock_result_e emap_lock_result_t; bool -emap_init(emap_t *emap) { +emap_init(emap_t *emap, bool zeroed) { bool err; - err = rtree_new(&emap->rtree, true); + err = rtree_new(&emap->rtree, zeroed); if (err) { return true; } diff --git a/src/jemalloc.c b/src/jemalloc.c index 907235af..e2adffd2 100644 --- a/src/jemalloc.c +++ b/src/jemalloc.c @@ -1572,7 +1572,8 @@ malloc_init_hard_a0_locked() { if (base_boot(TSDN_NULL)) { return true; } - if (emap_init(&emap_global)) { + /* emap_global is static, hence zeroed. */ + if (emap_init(&emap_global, /* zeroed */ true)) { return true; } if (extent_boot()) {