summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/chunk.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/chunk.c b/src/chunk.c
index 7926452..b9a2441 100644
--- a/src/chunk.c
+++ b/src/chunk.c
@@ -254,7 +254,9 @@ chunk_alloc_default(void *new_addr, size_t size, size_t alignment, bool *zero,
{
arena_t *arena;
- arena = arena_get(tsd_fetch(), arena_ind, false, true);
+ /* Dodge tsd for a0 in order to avoid bootstrapping issues. */
+ arena = (arena_ind == 0) ? a0get() : arena_get(tsd_fetch(), arena_ind,
+ false, true);
/*
* The arena we're allocating on behalf of must have been initialized
* already.