From ae61b7973cff48247ebd1a874e4f47270392e8ca Mon Sep 17 00:00:00 2001 From: miloyip Date: Sun, 3 May 2015 21:02:34 +0800 Subject: [PATCH] Standardize CrtAllocator::Realloc() for newSize = 0 --- include/rapidjson/allocators.h | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/include/rapidjson/allocators.h b/include/rapidjson/allocators.h index d68b74c..16bf038 100644 --- a/include/rapidjson/allocators.h +++ b/include/rapidjson/allocators.h @@ -68,7 +68,14 @@ public: else return NULL; // standardize to returning NULL. } - void* Realloc(void* originalPtr, size_t originalSize, size_t newSize) { (void)originalSize; return std::realloc(originalPtr, newSize); } + void* Realloc(void* originalPtr, size_t originalSize, size_t newSize) { + (void)originalSize; + if (newSize == 0) { + std::free(originalPtr); + return NULL; + } + return std::realloc(originalPtr, newSize); + } static void Free(void *ptr) { std::free(ptr); } };