mirror of
https://github.com/jemalloc/jemalloc.git
synced 2026-07-22 16:47:21 +03:00
Darwin malloc_size override support proposal.
Darwin has similar api than Linux/FreeBSD's malloc_usable_size.
This commit is contained in:
parent
ab0f1604b4
commit
cf9724531a
13 changed files with 53 additions and 19 deletions
|
|
@ -132,6 +132,11 @@ static const bool config_debug =
|
|||
#define MEXP 19937
|
||||
#include "test/SFMT.h"
|
||||
|
||||
#ifndef JEMALLOC_HAVE_MALLOC_SIZE
|
||||
#define TEST_MALLOC_SIZE malloc_usable_size
|
||||
#else
|
||||
#define TEST_MALLOC_SIZE malloc_size
|
||||
#endif
|
||||
/******************************************************************************/
|
||||
/*
|
||||
* Define always-enabled assertion macros, so that test assertions execute even
|
||||
|
|
|
|||
|
|
@ -120,7 +120,7 @@ TEST_BEGIN(test_alignment_and_size) {
|
|||
"size=%zu (%#zx): %s",
|
||||
alignment, size, size, buf);
|
||||
}
|
||||
total += malloc_usable_size(ps[i]);
|
||||
total += TEST_MALLOC_SIZE(ps[i]);
|
||||
if (total >= (MAXALIGN << 1)) {
|
||||
break;
|
||||
}
|
||||
|
|
@ -141,7 +141,7 @@ TEST_END
|
|||
TEST_BEGIN(test_zero_alloc) {
|
||||
void *res = aligned_alloc(8, 0);
|
||||
assert(res);
|
||||
size_t usable = malloc_usable_size(res);
|
||||
size_t usable = TEST_MALLOC_SIZE(res);
|
||||
assert(usable > 0);
|
||||
free(res);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -70,7 +70,7 @@ thd_start(void *arg) {
|
|||
expect_ptr_eq(ap0, ap1,
|
||||
"Pointer returned by \"thread.allocatedp\" should not change");
|
||||
|
||||
usize = malloc_usable_size(p);
|
||||
usize = TEST_MALLOC_SIZE(p);
|
||||
expect_u64_le(a0 + usize, a1,
|
||||
"Allocated memory counter should increase by at least the amount "
|
||||
"explicitly allocated");
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
TEST_BEGIN(test_zero_alloc) {
|
||||
void *res = malloc(0);
|
||||
assert(res);
|
||||
size_t usable = malloc_usable_size(res);
|
||||
size_t usable = TEST_MALLOC_SIZE(res);
|
||||
assert(usable > 0);
|
||||
free(res);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -101,7 +101,7 @@ TEST_BEGIN(test_alignment_and_size) {
|
|||
"size=%zu (%#zx): %s",
|
||||
alignment, size, size, buf);
|
||||
}
|
||||
total += malloc_usable_size(ps[i]);
|
||||
total += TEST_MALLOC_SIZE(ps[i]);
|
||||
if (total >= (MAXALIGN << 1)) {
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -185,7 +185,7 @@ TEST_BEGIN(test_align_enum) {
|
|||
assert_ptr_not_null(p,
|
||||
"Unexpected mallocx() error");
|
||||
assert_zu_eq(nallocx(1, flags),
|
||||
malloc_usable_size(p),
|
||||
TEST_MALLOC_SIZE(p),
|
||||
"Wrong mallocx() usable size");
|
||||
int flags_next =
|
||||
MALLOCX_LG_ALIGN(lg_align_next);
|
||||
|
|
@ -193,7 +193,7 @@ TEST_BEGIN(test_align_enum) {
|
|||
assert_ptr_not_null(p,
|
||||
"Unexpected rallocx() error");
|
||||
expect_zu_eq(nallocx(size, flags_next),
|
||||
malloc_usable_size(p),
|
||||
TEST_MALLOC_SIZE(p),
|
||||
"Wrong rallocx() usable size");
|
||||
free(p);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -69,7 +69,7 @@ malloc_mus_free(void) {
|
|||
test_fail("Unexpected malloc() failure");
|
||||
return;
|
||||
}
|
||||
malloc_usable_size(p);
|
||||
TEST_MALLOC_SIZE(p);
|
||||
free(p);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ do_allocs(size_t size, bool zero, size_t lg_align) {
|
|||
if (opt_junk_alloc && !zero) { \
|
||||
expect_ptr_eq(ptr, last_junked_ptr, ""); \
|
||||
expect_zu_eq(last_junked_usize, \
|
||||
malloc_usable_size(ptr), ""); \
|
||||
TEST_MALLOC_SIZE(ptr), ""); \
|
||||
} \
|
||||
} while (0)
|
||||
if (!zero && lg_align == 0) {
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ test_combinations(szind_t ind, size_t sizes_array[N_PTRS],
|
|||
int flags = flags_array[i];
|
||||
void *p = mallocx(sz, flags);
|
||||
assert_ptr_not_null(p, "malloc() failed");
|
||||
assert(malloc_usable_size(p) == sz_index2size(ind));
|
||||
assert(TEST_MALLOC_SIZE(p) == sz_index2size(ind));
|
||||
ptrs[i] = p;
|
||||
live_req_sum += sz;
|
||||
live_count++;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue