MCPcopy Create free account
hub / github.com/F-Stack/f-stack / extent_alloc_wrapper_hard

Function extent_alloc_wrapper_hard

app/redis-6.2.6/deps/jemalloc/src/extent.c:1418–1455  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1416}
1417
1418static extent_t *
1419extent_alloc_wrapper_hard(tsdn_t *tsdn, arena_t *arena,
1420 extent_hooks_t **r_extent_hooks, void *new_addr, size_t size, size_t pad,
1421 size_t alignment, bool slab, szind_t szind, bool *zero, bool *commit) {
1422 size_t esize = size + pad;
1423 extent_t *extent = extent_alloc(tsdn, arena);
1424 if (extent == NULL) {
1425 return NULL;
1426 }
1427 void *addr;
1428 if (*r_extent_hooks == &extent_hooks_default) {
1429 /* Call directly to propagate tsdn. */
1430 addr = extent_alloc_default_impl(tsdn, arena, new_addr, esize,
1431 alignment, zero, commit);
1432 } else {
1433 extent_hook_pre_reentrancy(tsdn, arena);
1434 addr = (*r_extent_hooks)->alloc(*r_extent_hooks, new_addr,
1435 esize, alignment, zero, commit, arena_ind_get(arena));
1436 extent_hook_post_reentrancy(tsdn);
1437 }
1438 if (addr == NULL) {
1439 extent_dalloc(tsdn, arena, extent);
1440 return NULL;
1441 }
1442 extent_init(extent, arena, addr, esize, slab, szind,
1443 arena_extent_sn_next(arena), extent_state_active, *zero, *commit,
1444 true);
1445 if (pad != 0) {
1446 extent_addr_randomize(tsdn, extent, alignment);
1447 }
1448 if (extent_register(tsdn, extent)) {
1449 extents_leak(tsdn, arena, r_extent_hooks,
1450 &arena->extents_retained, extent, false);
1451 return NULL;
1452 }
1453
1454 return extent;
1455}
1456
1457extent_t *
1458extent_alloc_wrapper(tsdn_t *tsdn, arena_t *arena,

Callers 1

extent_alloc_wrapperFunction · 0.85

Calls 11

extent_allocFunction · 0.85
arena_ind_getFunction · 0.85
extent_dallocFunction · 0.85
extent_initFunction · 0.85
arena_extent_sn_nextFunction · 0.85
extent_addr_randomizeFunction · 0.85
extent_registerFunction · 0.85
extents_leakFunction · 0.85

Tested by

no test coverage detected