summaryrefslogtreecommitdiff
path: root/include/mimalloc.h
diff options
context:
space:
mode:
authordaan <daanl@outlook.com>2019-07-07 18:11:21 -0700
committerdaan <daanl@outlook.com>2019-07-07 18:11:21 -0700
commitc3528203b539014ae1a2c92c0915a18bc7a7b13c (patch)
tree1c078081db47867197a1072fb650012d6b5ac40e /include/mimalloc.h
parentdd59a917ce9b97716295f929c45692f01db27eff (diff)
fix compilation with C++, fix overrides in C++ to adhere to the spec (issue #26)
Diffstat (limited to 'include/mimalloc.h')
-rw-r--r--include/mimalloc.h19
1 files changed, 14 insertions, 5 deletions
diff --git a/include/mimalloc.h b/include/mimalloc.h
index 192a0cf..8a6de7f 100644
--- a/include/mimalloc.h
+++ b/include/mimalloc.h
@@ -233,10 +233,9 @@ mi_decl_export void mi_option_set(mi_option_t option, long value);
mi_decl_export void mi_option_set_default(mi_option_t option, long value);
-// ------------------------------------------------------
-// mi prefixed implementations of various posix, unix,
-// and C++ allocation functions.
-// ------------------------------------------------------
+// ----------------------------------------------------------------------------------
+// mi prefixed implementations of various posix, unix, and C++ allocation functions.
+// -----------------------------------------------------------------------------------
mi_decl_export size_t mi_malloc_size(void* p) mi_attr_noexcept;
mi_decl_export size_t mi_malloc_usable_size(void *p) mi_attr_noexcept;
@@ -251,9 +250,19 @@ mi_decl_export mi_decl_allocator void* mi_pvalloc(size_t size) mi_attr_noexcept
mi_decl_export mi_decl_allocator void* mi_aligned_alloc(size_t alignment, size_t size) mi_attr_noexcept mi_attr_malloc mi_attr_alloc_size(2);
mi_decl_export mi_decl_allocator void* mi_reallocarray(void* p, size_t count, size_t size) mi_attr_noexcept mi_attr_malloc mi_attr_alloc_size2(2,3);
-
+mi_decl_export void mi_free_size(void* p, size_t size) mi_attr_noexcept;
+mi_decl_export void mi_free_size_aligned(void* p, size_t size, size_t alignment) mi_attr_noexcept;
+mi_decl_export void mi_free_aligned(void* p, size_t alignment) mi_attr_noexcept;
#ifdef __cplusplus
}
#endif
+#ifdef __cplusplus
+mi_decl_export void* mi_decl_allocator mi_new(std::size_t n) noexcept(false) mi_attr_malloc mi_attr_alloc_size(1);
+#if (__cplusplus > 201402L || defined(__cpp_aligned_new))
+#include <new>
+mi_decl_export void* mi_decl_allocator mi_new_aligned(std::size_t n, std::align_val_t alignment) noexcept(false) mi_attr_malloc mi_attr_alloc_size(1);
+#endif
+#endif
+
#endif