diff options
author | HappyDOGE <28511119+HappyDOGE@users.noreply.github.com> | 2022-01-03 14:33:16 +0300 |
---|---|---|
committer | HappyDOGE <28511119+HappyDOGE@users.noreply.github.com> | 2022-01-03 14:33:16 +0300 |
commit | f3ffed0742d62adf48c37dca0acfad621724c21b (patch) | |
tree | 7e78b6f15bb4cd0f54fa982446061b0b39643e0c /NorthstarDedicatedTest/memalloc.h | |
parent | 2942ea56527100d5e39e0bbba4a1d16b1cde6128 (diff) | |
parent | 966f5052b7b59fc7200eb736c8d393056e0389cd (diff) | |
download | NorthstarLauncher-f3ffed0742d62adf48c37dca0acfad621724c21b.tar.gz NorthstarLauncher-f3ffed0742d62adf48c37dca0acfad621724c21b.zip |
merge with upstream
Diffstat (limited to 'NorthstarDedicatedTest/memalloc.h')
-rw-r--r-- | NorthstarDedicatedTest/memalloc.h | 40 |
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>; |