Add and use MALLOCX_ZERO_GET() macro to jemalloc_shim.h

Pull MALLOCX_ZERO_GET() macro to align the usage with the jemalloc
jemalloc/internal/jemalloc_internal_types.h header.
This commit is contained in:
Ondřej Surý 2025-06-04 10:19:35 +02:00
parent c6828bcf8f
commit d1427e9fa8
No known key found for this signature in database
GPG key ID: 2820F37E873DEA41

View file

@ -24,7 +24,13 @@
const char *malloc_conf = NULL;
#define MALLOCX_ZERO ((int)0x40)
/*
* The MALLOCX_ZERO and MALLOCX_ZERO_GET macros were taken literal from
* jemalloc_macros.h and jemalloc_internal_types.h headers respectively.
*/
#define MALLOCX_ZERO ((int)0x40)
#define MALLOCX_ZERO_GET(flags) ((bool)(flags & MALLOCX_ZERO))
typedef union {
size_t size;
@ -42,7 +48,7 @@ mallocx(size_t size, int flags) {
si->size = size;
ptr = &si[1];
if ((flags & MALLOCX_ZERO) != 0) {
if (MALLOCX_ZERO_GET(flags)) {
memset(ptr, 0, size);
}
@ -68,7 +74,7 @@ rallocx(void *ptr, size_t size, int flags) {
size_info *si = realloc(&(((size_info *)ptr)[-1]), size + sizeof(*si));
INSIST(si != NULL);
if ((flags & MALLOCX_ZERO) != 0 && size > si->size) {
if (MALLOCX_ZERO_GET(flags) && size > si->size) {
memset((uint8_t *)si + sizeof(*si) + si->size, 0,
size - si->size);
}