aboutsummaryrefslogtreecommitdiff
path: root/NorthstarDedicatedTest/memalloc.h
diff options
context:
space:
mode:
authorBobTheBob <32057864+BobTheBob9@users.noreply.github.com>2022-01-02 22:32:36 +0000
committerGitHub <noreply@github.com>2022-01-02 22:32:36 +0000
commit3f629680f71b4694bd4eb78726537a91e10a2352 (patch)
tree137e44e28bbe372adeb616e3f20156ba23c08655 /NorthstarDedicatedTest/memalloc.h
parentff875c0551c54bb187b5320b81029f8fe7f010fb (diff)
parentf7b96d1048acddc343244ddec87a996ebaf7cb5b (diff)
downloadNorthstarLauncher-3f629680f71b4694bd4eb78726537a91e10a2352.tar.gz
NorthstarLauncher-3f629680f71b4694bd4eb78726537a91e10a2352.zip
Merge pull request #19 from p0358/main
Big refactor of launching process
Diffstat (limited to 'NorthstarDedicatedTest/memalloc.h')
-rw-r--r--NorthstarDedicatedTest/memalloc.h40
1 files changed, 38 insertions, 2 deletions
diff --git a/NorthstarDedicatedTest/memalloc.h b/NorthstarDedicatedTest/memalloc.h
index fe3c5255..92ab9672 100644
--- a/NorthstarDedicatedTest/memalloc.h
+++ b/NorthstarDedicatedTest/memalloc.h
@@ -1,6 +1,42 @@
#pragma once
-extern size_t g_iStaticAllocated;
+#include "include/rapidjson/document.h"
+//#include "include/rapidjson/allocators.h"
+
+extern "C" void* _malloc_base(size_t size);
+extern "C" void* _calloc_base(size_t const count, size_t const size);
+extern "C" void* _realloc_base(void* block, size_t size);
+extern "C" void* _recalloc_base(void* const block, size_t const count, size_t const size);
+extern "C" void _free_base(void* const block);
+extern "C" char* _strdup_base(const char* src);
void* operator new(size_t n);
-void operator delete(void* p); \ No newline at end of file
+void operator delete(void* p);
+
+//void* malloc(size_t n);
+
+class SourceAllocator {
+public:
+ static const bool kNeedFree = true;
+ void* Malloc(size_t size) {
+ if (size) // behavior of malloc(0) is implementation defined.
+ return _malloc_base(size);
+ else
+ return NULL; // standardize to returning NULL.
+ }
+ void* Realloc(void* originalPtr, size_t originalSize, size_t newSize) {
+ (void)originalSize;
+ if (newSize == 0) {
+ _free_base(originalPtr);
+ return NULL;
+ }
+ return _realloc_base(originalPtr, newSize);
+ }
+ static void Free(void* ptr) { _free_base(ptr); }
+};
+
+typedef rapidjson::GenericDocument<rapidjson::UTF8<>, rapidjson::MemoryPoolAllocator<SourceAllocator>, SourceAllocator> rapidjson_document;
+//typedef rapidjson::GenericDocument<rapidjson::UTF8<>, SourceAllocator, SourceAllocator> rapidjson_document;
+//typedef rapidjson::Document rapidjson_document;
+//using MyDocument = rapidjson::GenericDocument<rapidjson::UTF8<>, MemoryAllocator>;
+//using rapidjson_document = rapidjson::GenericDocument<rapidjson::UTF8<>, SourceAllocator, SourceAllocator>;