Refactor arena_dalloc() / _sdalloc().
This commit is contained in:
parent
bc0998a905
commit
a3fa597921
@ -266,6 +266,22 @@ arena_dalloc_no_tcache(tsdn_t *tsdn, void *ptr) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
JEMALLOC_ALWAYS_INLINE void
|
||||||
|
arena_dalloc_large(tsdn_t *tsdn, void *ptr, tcache_t *tcache, szind_t szind,
|
||||||
|
bool slow_path) {
|
||||||
|
if (szind < nhbins) {
|
||||||
|
if (config_prof && unlikely(szind < SC_NBINS)) {
|
||||||
|
arena_dalloc_promoted(tsdn, ptr, tcache, slow_path);
|
||||||
|
} else {
|
||||||
|
tcache_dalloc_large(tsdn_tsd(tsdn), tcache, ptr, szind,
|
||||||
|
slow_path);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
extent_t *extent = iealloc(tsdn, ptr);
|
||||||
|
large_dalloc(tsdn, extent);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
JEMALLOC_ALWAYS_INLINE void
|
JEMALLOC_ALWAYS_INLINE void
|
||||||
arena_dalloc(tsdn_t *tsdn, void *ptr, tcache_t *tcache,
|
arena_dalloc(tsdn_t *tsdn, void *ptr, tcache_t *tcache,
|
||||||
alloc_ctx_t *alloc_ctx, bool slow_path) {
|
alloc_ctx_t *alloc_ctx, bool slow_path) {
|
||||||
@ -304,18 +320,7 @@ arena_dalloc(tsdn_t *tsdn, void *ptr, tcache_t *tcache,
|
|||||||
tcache_dalloc_small(tsdn_tsd(tsdn), tcache, ptr, szind,
|
tcache_dalloc_small(tsdn_tsd(tsdn), tcache, ptr, szind,
|
||||||
slow_path);
|
slow_path);
|
||||||
} else {
|
} else {
|
||||||
if (szind < nhbins) {
|
arena_dalloc_large(tsdn, ptr, tcache, szind, slow_path);
|
||||||
if (config_prof && unlikely(szind < SC_NBINS)) {
|
|
||||||
arena_dalloc_promoted(tsdn, ptr, tcache,
|
|
||||||
slow_path);
|
|
||||||
} else {
|
|
||||||
tcache_dalloc_large(tsdn_tsd(tsdn), tcache, ptr,
|
|
||||||
szind, slow_path);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
extent_t *extent = iealloc(tsdn, ptr);
|
|
||||||
large_dalloc(tsdn, extent);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -415,18 +420,7 @@ arena_sdalloc(tsdn_t *tsdn, void *ptr, size_t size, tcache_t *tcache,
|
|||||||
tcache_dalloc_small(tsdn_tsd(tsdn), tcache, ptr, szind,
|
tcache_dalloc_small(tsdn_tsd(tsdn), tcache, ptr, szind,
|
||||||
slow_path);
|
slow_path);
|
||||||
} else {
|
} else {
|
||||||
if (szind < nhbins) {
|
arena_dalloc_large(tsdn, ptr, tcache, szind, slow_path);
|
||||||
if (config_prof && unlikely(szind < SC_NBINS)) {
|
|
||||||
arena_dalloc_promoted(tsdn, ptr, tcache,
|
|
||||||
slow_path);
|
|
||||||
} else {
|
|
||||||
tcache_dalloc_large(tsdn_tsd(tsdn),
|
|
||||||
tcache, ptr, szind, slow_path);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
extent_t *extent = iealloc(tsdn, ptr);
|
|
||||||
large_dalloc(tsdn, extent);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user