From 019cccc293f96c9f7886373d816aab061f65f7de Mon Sep 17 00:00:00 2001 From: auxten Date: Wed, 3 May 2023 13:25:12 +0800 Subject: [PATCH] Make arenas_lookup_ctl triable --- src/ctl.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/ctl.c b/src/ctl.c index 61511d34..e7d6529e 100644 --- a/src/ctl.c +++ b/src/ctl.c @@ -3215,19 +3215,21 @@ arenas_lookup_ctl(tsd_t *tsd, const size_t *mib, int ret; unsigned arena_ind; void *ptr; - edata_t *edata; + emap_full_alloc_ctx_t alloc_ctx; + bool ptr_not_present; arena_t *arena; ptr = NULL; ret = EINVAL; malloc_mutex_lock(tsd_tsdn(tsd), &ctl_mtx); WRITE(ptr, void *); - edata = emap_edata_lookup(tsd_tsdn(tsd), &arena_emap_global, ptr); - if (edata == NULL) { + ptr_not_present = emap_full_alloc_ctx_try_lookup(tsd_tsdn(tsd), &arena_emap_global, ptr, + &alloc_ctx); + if (ptr_not_present) { goto label_return; } - arena = arena_get_from_edata(edata); + arena = arena_get_from_edata(alloc_ctx.edata); if (arena == NULL) { goto label_return; }