try to allocate within our hint space (partially addresses issue #360)
This commit is contained in:
parent
0560fc27c0
commit
09c658dd40
2
src/os.c
2
src/os.c
@ -585,7 +585,7 @@ static mi_decl_cache_align _Atomic(uintptr_t) aligned_base;
|
|||||||
static void* mi_os_get_aligned_hint(size_t try_alignment, size_t size)
|
static void* mi_os_get_aligned_hint(size_t try_alignment, size_t size)
|
||||||
{
|
{
|
||||||
if (try_alignment == 0 || try_alignment > MI_SEGMENT_SIZE) return NULL;
|
if (try_alignment == 0 || try_alignment > MI_SEGMENT_SIZE) return NULL;
|
||||||
if ((size%MI_SEGMENT_SIZE) != 0) return NULL;
|
size = _mi_align_up(size, MI_SEGMENT_SIZE);
|
||||||
if (size > 1*MI_GiB) return NULL; // guarantee the chance of fixed valid address is at most 1/(KK_HINT_AREA / 1<<30) = 1/4096.
|
if (size > 1*MI_GiB) return NULL; // guarantee the chance of fixed valid address is at most 1/(KK_HINT_AREA / 1<<30) = 1/4096.
|
||||||
#if (MI_SECURE>0)
|
#if (MI_SECURE>0)
|
||||||
size += MI_SEGMENT_SIZE; // put in `MI_SEGMENT_SIZE` virtual gaps between hinted blocks; this splits VLA's but increases guarded areas.
|
size += MI_SEGMENT_SIZE; // put in `MI_SEGMENT_SIZE` virtual gaps between hinted blocks; this splits VLA's but increases guarded areas.
|
||||||
|
Loading…
Reference in New Issue
Block a user