Skip to content

Commit 57830a4

Browse files
committed
fix assertion in mi_os_ensure_zero
1 parent 2f0540c commit 57830a4

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

src/os.c

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -370,14 +370,15 @@ void* _mi_os_alloc_aligned(size_t size, size_t alignment, bool commit, bool allo
370370

371371
mi_assert_internal(memid->mem.os.size >= size);
372372
mi_assert_internal(_mi_is_aligned(p,alignment));
373-
mi_assert_internal(!commit || memid->initially_committed);
374-
mi_assert_internal(!memid->initially_zero || memid->initially_committed);
373+
if (commit) { mi_assert_internal(memid->initially_committed); }
374+
if (memid->initially_zero) { mi_assert_internal(memid->initially_committed); }
375375
return p;
376376
}
377377

378378

379379
mi_decl_nodiscard static void* mi_os_ensure_zero(void* p, size_t size, mi_memid_t* memid) {
380-
if (p==NULL || size==0 || memid->initially_zero) return p;
380+
if (p==NULL || size==0) return p;
381+
// ensure committed
381382
if (!memid->initially_committed) {
382383
bool is_zero = false;
383384
if (!_mi_os_commit(p, size, &is_zero)) {
@@ -386,6 +387,8 @@ mi_decl_nodiscard static void* mi_os_ensure_zero(void* p, size_t size, mi_memid_
386387
}
387388
memid->initially_committed = true;
388389
}
390+
// ensure zero'd
391+
if (memid->initially_zero) return p;
389392
_mi_memzero_aligned(p,size);
390393
memid->initially_zero = true;
391394
return p;

0 commit comments

Comments
 (0)