Skip to content

Commit 22e4f21

Browse files
committed
Tests: allow ArmoredAllocator to be called multiple times
1 parent e985015 commit 22e4f21

File tree

1 file changed

+4
-16
lines changed

1 file changed

+4
-16
lines changed

extras/tests/JsonDocument/shrinkToFit.cpp

Lines changed: 4 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -16,37 +16,25 @@ using ArduinoJson::detail::sizeofString;
1616

1717
class ArmoredAllocator : public Allocator {
1818
public:
19-
ArmoredAllocator() : _ptr(0), _size(0) {}
2019
virtual ~ArmoredAllocator() {}
2120

2221
void* allocate(size_t size) override {
23-
_ptr = malloc(size);
24-
_size = size;
25-
return _ptr;
22+
return malloc(size);
2623
}
2724

2825
void deallocate(void* ptr) override {
29-
REQUIRE(ptr == _ptr);
3026
free(ptr);
31-
_ptr = 0;
32-
_size = 0;
3327
}
3428

3529
void* reallocate(void* ptr, size_t new_size) override {
36-
REQUIRE(ptr == _ptr);
3730
// don't call realloc, instead alloc a new buffer and erase the old one
3831
// this way we make sure we support relocation
3932
void* new_ptr = malloc(new_size);
40-
memcpy(new_ptr, _ptr, std::min(new_size, _size));
41-
memset(_ptr, '#', _size); // erase
42-
free(_ptr);
43-
_ptr = new_ptr;
33+
memset(new_ptr, '#', new_size); // erase
34+
memcpy(new_ptr, ptr, std::min(new_size, new_size));
35+
free(ptr);
4436
return new_ptr;
4537
}
46-
47-
private:
48-
void* _ptr;
49-
size_t _size;
5038
};
5139

5240
TEST_CASE("JsonDocument::shrinkToFit()") {

0 commit comments

Comments
 (0)