Веб-сайт самохостера Lotigara

summaryrefslogtreecommitdiff
path: root/source/core/StarMemory.cpp
diff options
context:
space:
mode:
authorKai Blaschke <kai.blaschke@gdata.de>2024-02-21 18:08:56 +0100
committerKai Blaschke <kai.blaschke@gdata.de>2024-02-21 18:08:56 +0100
commit9029f897da1052f5a16cac6dc1a3069d1f26a192 (patch)
tree32d33d3724db393f39b70805710263b5b891ff25 /source/core/StarMemory.cpp
parentb8da62bf43e42e6fc895664a9faf621cbe0325c8 (diff)
Support prefixed and non-prefixed JeMalloc functions
Note that linking a JeMalloc library without prefixed functions will replace all memory allocations, including any call to "new", not just the ones specifically called via Star::malloc etc.
Diffstat (limited to 'source/core/StarMemory.cpp')
-rw-r--r--source/core/StarMemory.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/source/core/StarMemory.cpp b/source/core/StarMemory.cpp
index 3855283..9e73eb6 100644
--- a/source/core/StarMemory.cpp
+++ b/source/core/StarMemory.cpp
@@ -7,6 +7,7 @@
namespace Star {
#ifdef STAR_USE_JEMALLOC
+#ifdef STAR_JEMALLOC_IS_PREFIXED
void* malloc(size_t size) {
return je_malloc(size);
}
@@ -33,6 +34,24 @@ namespace Star {
}
void free(void* ptr) {
+ ::free(ptr);
+ }
+
+ void free(void* ptr, size_t size) {
+ if (ptr)
+ ::sdallocx(ptr, size, 0);
+ }
+#endif
+#else
+ void* malloc(size_t size) {
+ return ::malloc(size);
+ }
+
+ void* realloc(void* ptr, size_t size) {
+ return ::realloc(ptr, size);
+ }
+
+ void free(void* ptr) {
return ::free(ptr);
}