diff --git a/include/ArduinoJson/DynamicJsonBuffer.hpp b/include/ArduinoJson/DynamicJsonBuffer.hpp index 3587b71d..dd957e20 100644 --- a/include/ArduinoJson/DynamicJsonBuffer.hpp +++ b/include/ArduinoJson/DynamicJsonBuffer.hpp @@ -21,10 +21,14 @@ class DynamicJsonBuffer : public JsonBuffer { protected: virtual void* alloc(size_t bytes) { + void* p = _buffer + _size; _size += bytes; - return NULL; + return p; } + static const size_t BLOCK_CAPACITY = 32; + size_t _size; + uint8_t _buffer[BLOCK_CAPACITY]; }; } diff --git a/test/DynamicJsonBuffer_Basic_Tests.cpp b/test/DynamicJsonBuffer_Basic_Tests.cpp index 8b682ab7..6f05fe84 100644 --- a/test/DynamicJsonBuffer_Basic_Tests.cpp +++ b/test/DynamicJsonBuffer_Basic_Tests.cpp @@ -26,3 +26,9 @@ TEST_F(DynamicJsonBuffer_Basic_Tests, GrowsAfterAlloc) { buffer.alloc(100); ASSERT_EQ(200, buffer.size()); } + +TEST_F(DynamicJsonBuffer_Basic_Tests, ReturnDifferentPointer) { + void* p1 = buffer.alloc(100); + void* p2 = buffer.alloc(200); + ASSERT_NE(p1, p2); +}