mirror of
https://github.com/microsoft/mimalloc.git
synced 2025-07-01 09:14:38 +03:00
Merge branch 'dev' into dev3
This commit is contained in:
commit
e19f08aefe
1 changed files with 6 additions and 3 deletions
9
src/os.c
9
src/os.c
|
@ -380,14 +380,15 @@ void* _mi_os_alloc_aligned(size_t size, size_t alignment, bool commit, bool allo
|
||||||
|
|
||||||
mi_assert_internal(memid->mem.os.size >= size);
|
mi_assert_internal(memid->mem.os.size >= size);
|
||||||
mi_assert_internal(_mi_is_aligned(p,alignment));
|
mi_assert_internal(_mi_is_aligned(p,alignment));
|
||||||
mi_assert_internal(!commit || memid->initially_committed);
|
if (commit) { mi_assert_internal(memid->initially_committed); }
|
||||||
mi_assert_internal(!memid->initially_zero || memid->initially_committed);
|
if (memid->initially_zero) { mi_assert_internal(memid->initially_committed); }
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
mi_decl_nodiscard static void* mi_os_ensure_zero(void* p, size_t size, mi_memid_t* memid) {
|
mi_decl_nodiscard static void* mi_os_ensure_zero(void* p, size_t size, mi_memid_t* memid) {
|
||||||
if (p==NULL || size==0 || memid->initially_zero) return p;
|
if (p==NULL || size==0) return p;
|
||||||
|
// ensure committed
|
||||||
if (!memid->initially_committed) {
|
if (!memid->initially_committed) {
|
||||||
bool is_zero = false;
|
bool is_zero = false;
|
||||||
if (!_mi_os_commit(p, size, &is_zero)) {
|
if (!_mi_os_commit(p, size, &is_zero)) {
|
||||||
|
@ -396,6 +397,8 @@ mi_decl_nodiscard static void* mi_os_ensure_zero(void* p, size_t size, mi_memid_
|
||||||
}
|
}
|
||||||
memid->initially_committed = true;
|
memid->initially_committed = true;
|
||||||
}
|
}
|
||||||
|
// ensure zero'd
|
||||||
|
if (memid->initially_zero) return p;
|
||||||
_mi_memzero_aligned(p,size);
|
_mi_memzero_aligned(p,size);
|
||||||
memid->initially_zero = true;
|
memid->initially_zero = true;
|
||||||
return p;
|
return p;
|
||||||
|
|
Loading…
Add table
Reference in a new issue