Benoit Blanchon
8ab45e6f82
Add JsonVariant::release()
2023-05-25 09:35:40 +02:00
Benoit Blanchon
da45c4bc4f
Fix memory leak in JsonDeserializer
when object key is repeated
2023-05-25 09:21:54 +02:00
Benoit Blanchon
48acf963fb
Remove VariantImpl.hpp
2023-05-25 09:06:05 +02:00
Benoit Blanchon
ccccd1da11
Sort VariantData
's members alphabetically
2023-05-25 09:06:05 +02:00
Benoit Blanchon
78a30496be
Define all VariantData
's member functions inline
2023-05-25 09:03:16 +02:00
Benoit Blanchon
636c8c36eb
Decouple MemoryPool
from VariantSlot
2023-05-22 17:56:04 +02:00
Benoit Blanchon
5070fa6562
Rename memberFilter
to elementFilter
in deserializers
2023-05-22 14:11:59 +02:00
Benoit Blanchon
d9e035a288
Remove VariantData::isEnclosed()
2023-05-22 09:46:35 +02:00
Benoit Blanchon
aba8974148
Extract StringNode.hpp
2023-05-22 09:05:48 +02:00
Benoit Blanchon
044a4753d2
Rename StringCopier
to StringBuilder
2023-05-10 10:12:55 +02:00
Benoit Blanchon
ff0deee793
Remove string storage policy to always use StringCopier
2023-05-10 10:02:48 +02:00
Benoit Blanchon
37357086e2
Remove the zero-copy mode
...
After removing the string size from `VariantContent`, `deserializeJson()` and `deserializeMsgPack()` could not support NUL in strings in the zero-copy mode anymore.
Instead of adding a complicated warning in the documentation, I thought it was better to remove the zero-copy mode entirely.
The zero-copy mode has always been a source of bugs because many users used it without realizing it.
Also, the memory savings are smaller now that we deduplicate strings, so this feature should not be missed much.
2023-05-10 09:55:21 +02:00
Benoit Blanchon
9321f8fdab
Remove string size from VariantContent
( #1650 )
2023-05-02 18:56:17 +02:00
Benoit Blanchon
167ea08c53
Pass StringNode*
to VariantData
2023-05-02 18:56:02 +02:00
Benoit Blanchon
5c0338970c
Remove StoragePolicy
2023-05-02 17:52:53 +02:00
Benoit Blanchon
6b4dd3ff2f
Fix build on ESP32 (caused by espressif/arduino-esp32#7941 )
2023-05-02 10:48:02 +02:00
Benoit Blanchon
fead19560c
Rename visitRawJson()
to visitRawString()
2023-05-02 10:06:27 +02:00
Benoit Blanchon
86772d33bc
Rename VALUE_IS_OWNED_RAW
to VALUE_IS_RAW_STRING
2023-05-02 10:03:37 +02:00
Benoit Blanchon
a035116018
Remove unused struct RawData
2023-05-02 10:00:46 +02:00
Benoit Blanchon
806fa907ab
Always store serialized("string")
by copy ( #1915 )
2023-05-02 09:36:40 +02:00
Benoit Blanchon
95f5d9d134
Fix compatibility with the Blynk libary ( fixes #1914 )
...
Ported from 52d8a65cbc
2023-04-21 19:08:53 +02:00
Benoit Blanchon
03139a08af
Set default for ARDUINOJSON_ENABLE_PROGMEM
to 1
on AVR
...
Ported from 082ae69e86
2023-04-21 19:08:53 +02:00
Benoit Blanchon
acfbf26e37
CI: check build configuration on AVR
...
Ported from 976a6d7594
2023-04-21 19:08:53 +02:00
Benoit Blanchon
461cdaa818
Allow using PROGMEM outside of Arduino ( fixes #1903 )
...
Ported from 40daf56b5a
2023-04-21 19:08:53 +02:00
Benoit Blanchon
dd46813dc0
Change naming convention from _member
to member_
( fixes #1905 )
...
Ported from 31ce648e63
2023-04-21 18:59:48 +02:00
Benoit Blanchon
5d796781fb
Increase coverage
2023-04-21 18:39:47 +02:00
Benoit Blanchon
f5e7570f84
Simplify CollectionData
to work only with VariantSlot*
2023-04-21 16:11:54 +02:00
Benoit Blanchon
003087406c
Reference-count shared strings
2023-04-21 16:11:54 +02:00
Benoit Blanchon
b7c8e0d25c
Decouple VariantData
from MemoryPool
2023-04-21 16:11:54 +02:00
Benoit Blanchon
30c111fd3d
Remove callback from storeString()
2023-04-17 10:42:08 +02:00
Benoit Blanchon
9d0714efdf
Remove unused MemoryPool::_left
2023-04-17 10:42:08 +02:00
Benoit Blanchon
d8f3058efa
Store the strings in the heap
2023-04-17 10:42:08 +02:00
Benoit Blanchon
7c0fa7c276
Add MemoryPool::deallocPool()
2023-04-08 09:20:27 +02:00
Benoit Blanchon
6eb4f45fb9
Tests: ControllableAllocator controls reallocate()
too
2023-04-08 09:18:15 +02:00
Benoit Blanchon
b3132cac3a
Tests: add SpyingAllocator::clearLog()
2023-04-07 18:30:31 +02:00
Benoit Blanchon
d95a3bd19a
Tests: add TimebombAllocator
2023-04-07 18:28:46 +02:00
Benoit Blanchon
22e4f216c3
Tests: allow ArmoredAllocator to be called multiple times
2023-04-07 18:27:38 +02:00
Benoit Blanchon
e9850152a7
Tests: replace constants with sizeofString(n)
2023-04-07 14:50:54 +02:00
Benoit Blanchon
5e0e35615c
Double speed of DynamicJsonDocument::garbageCollect()
2023-04-05 16:50:52 +02:00
Benoit Blanchon
c4b879645a
Remove JsonDocument::capacity()
2023-04-03 09:51:43 +02:00
Benoit Blanchon
6afa6b647c
Test: Support failed allocations in SpyingAllocator
2023-04-03 09:51:10 +02:00
Benoit Blanchon
acd465b365
Test: change ControllableAllocator
into a decorator
2023-04-03 09:51:10 +02:00
Benoit Blanchon
e858570afb
Test: change SpyingAllocator
into a decorator
2023-04-03 09:51:09 +02:00
Benoit Blanchon
0643c2e708
Test: gather JsonDocument constructor and assignment tests
2023-04-03 09:51:09 +02:00
Benoit Blanchon
bcf1339e89
Test: split JsonDocument.cpp
into multiple files
2023-04-03 09:51:09 +02:00
Benoit Blanchon
dc463a2f72
Test: remove REQUIRE_JSON()
2023-04-03 09:51:09 +02:00
Benoit Blanchon
a7cdf638e7
Test: move ControllableAllocator
2023-04-03 09:51:09 +02:00
Benoit Blanchon
57810af2ac
Test: include deallocated size in allocator's log
2023-04-02 16:47:59 +02:00
Benoit Blanchon
2eb726b744
Test: add AllocatorLog
2023-04-02 16:47:59 +02:00
Benoit Blanchon
912137ccfb
Test: share SpyingAllocator
2023-04-01 10:34:48 +02:00