summaryrefslogtreecommitdiff
path: root/src/alloc.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/alloc.c')
-rw-r--r--src/alloc.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/src/alloc.c b/src/alloc.c
index 2cef8bcd..8e863a67 100644
--- a/src/alloc.c
+++ b/src/alloc.c
@@ -448,8 +448,7 @@ void mi_free(void* p) mi_attr_noexcept
#endif
mi_block_set_next(page, block, page->local_free);
page->local_free = block;
- page->used--;
- if (mi_unlikely(mi_page_all_free(page))) {
+ if (mi_unlikely(--page->used == 0)) { // using this expression generates better code than: page->used--; if (mi_page_all_free(page))
_mi_page_retire(page);
}
}