L < meta_data_arena->mu
| 293 | |
| 294 | // L < meta_data_arena->mu |
| 295 | LowLevelAlloc::Arena *LowLevelAlloc::NewArena(int32 flags, |
| 296 | Arena *meta_data_arena) { |
| 297 | RAW_CHECK(meta_data_arena != 0, "must pass a valid arena"); |
| 298 | if (meta_data_arena == &default_arena) { |
| 299 | if ((flags & LowLevelAlloc::kAsyncSignalSafe) != 0) { |
| 300 | meta_data_arena = &unhooked_async_sig_safe_arena; |
| 301 | } else if ((flags & LowLevelAlloc::kCallMallocHook) == 0) { |
| 302 | meta_data_arena = &unhooked_arena; |
| 303 | } |
| 304 | } |
| 305 | // Arena(0) uses the constructor for non-static contexts |
| 306 | Arena *result = |
| 307 | new (AllocWithArena(sizeof (*result), meta_data_arena)) Arena(0); |
| 308 | ArenaInit(result); |
| 309 | result->flags = flags; |
| 310 | return result; |
| 311 | } |
| 312 | |
| 313 | // L < arena->mu, L < arena->arena->mu |
| 314 | bool LowLevelAlloc::DeleteArena(Arena *arena) { |
nothing calls this directly
no test coverage detected