summaryrefslogtreecommitdiff
path: root/include/mimalloc.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/mimalloc.h')
-rw-r--r--include/mimalloc.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/include/mimalloc.h b/include/mimalloc.h
index c776efe..eacf397 100644
--- a/include/mimalloc.h
+++ b/include/mimalloc.h
@@ -95,6 +95,7 @@ terms of the MIT license. A copy of the license can be found in the file
#include <stddef.h> // size_t
#include <stdbool.h> // bool
+#include <stdint.h> // INTPTR_MAX
#ifdef __cplusplus
extern "C" {
@@ -166,7 +167,11 @@ mi_decl_export void mi_process_info(size_t* elapsed_msecs, size_t* user_msecs, s
// Note that `alignment` always follows `size` for consistency with unaligned
// allocation, but unfortunately this differs from `posix_memalign` and `aligned_alloc`.
// -------------------------------------------------------------------------------------
+#if (INTPTR_MAX > INT32_MAX)
#define MI_ALIGNMENT_MAX (16*1024*1024UL) // maximum supported alignment is 16MiB
+#else
+#define MI_ALIGNMENT_MAX (1024*1024UL) // maximum supported alignment for 32-bit systems is 1MiB
+#endif
mi_decl_nodiscard mi_decl_export mi_decl_restrict void* mi_malloc_aligned(size_t size, size_t alignment) mi_attr_noexcept mi_attr_malloc mi_attr_alloc_size(1) mi_attr_alloc_align(2);
mi_decl_nodiscard mi_decl_export mi_decl_restrict void* mi_malloc_aligned_at(size_t size, size_t alignment, size_t offset) mi_attr_noexcept mi_attr_malloc mi_attr_alloc_size(1);