Benoit Blanchon
bc6707b10c
Rename tests/JsonObject/invalid.cpp to unbound.cpp
2023-08-09 12:08:21 +02:00
Benoit Blanchon
7f459adc4b
Remove createNestedArray() and createNestedObject()
2023-08-09 12:08:21 +02:00
Benoit Blanchon
f422b7b37d
Replace add() with add<T>() (add(T) is still supported)
2023-08-09 10:57:52 +02:00
Benoit Blanchon
38941d5807
Tests: use sections for filters tests
2023-08-01 19:14:11 +02:00
Benoit Blanchon
57454cf97b
Don't call shrinkToFit() for deserializeXxx(JsonVariant)
2023-08-01 18:48:10 +02:00
Benoit Blanchon
af6954c224
serializeXxx() sets std::string and String instead of appending
2023-07-31 18:37:35 +02:00
Benoit Blanchon
3003756adb
Reformat filters test file
2023-07-31 17:34:53 +02:00
Benoit Blanchon
218a12ca46
Call shrinkToFit() in deserializeJson() and deserializeMsgPack()
2023-07-31 17:34:17 +02:00
Benoit Blanchon
43eed00cd9
Add deserializeXxx(JsonVariant, ...) ( resolves #1226 )
2023-07-29 12:05:18 +02:00
Benoit Blanchon
bc8ea36781
Tests: gather deserializeMsgPack() errors test cases
2023-07-29 06:33:45 +02:00
Benoit Blanchon
8fb187baed
Tests: gather deserializeJson() errors test cases
2023-07-29 06:33:45 +02:00
Benoit Blanchon
9122d87f12
Tests: remove duplicate test of incomplete input
2023-07-27 14:31:56 +02:00
Benoit Blanchon
9a11d98117
Tests: make allocator assertions more readable
2023-07-26 09:28:21 +02:00
Benoit Blanchon
30ec507989
Tests: use a consistent naming convention for allocators
2023-07-25 14:53:54 +02:00
Benoit Blanchon
7a76da3bc7
Tests: rename ControllableAllocator to KillswitchAllocator
2023-07-25 14:46:25 +02:00
Benoit Blanchon
a8329564e2
Remove JsonDocument::garbageCollect()
2023-07-25 14:37:25 +02:00
Benoit Blanchon
00c9d8680a
Remove memoryUsage()
2023-07-24 17:21:25 +02:00
Benoit Blanchon
228c4cf9fa
JsonDocument: use the copy-and-swap idiom
2023-07-24 10:13:17 +02:00
Benoit Blanchon
1a14499612
Preallocate pool list
2023-07-21 17:57:13 +02:00
Benoit Blanchon
f427706e06
VariantPoolList: handle SlotId overflow
2023-07-21 17:57:13 +02:00
Benoit Blanchon
727a1013ca
Recycle removed slots
2023-07-20 18:04:06 +02:00
Benoit Blanchon
0f319e7ca4
Remove capacity from JsonDocument's constructor
2023-07-18 09:08:55 +02:00
Benoit Blanchon
42b2840009
Create more memory pools as needed ( resolves #1074 )
2023-07-18 09:08:55 +02:00
Benoit Blanchon
65c67d317a
AllocatorLog: support nulls in deallocate() and reallocate()
2023-07-17 17:28:49 +02:00
Benoit Blanchon
c4e5051a7a
Store index of slot in the pool instead of a pointer or a distance
2023-07-17 11:20:46 +02:00
Benoit Blanchon
39e8b63746
Remove shallowCopy()
2023-07-17 11:20:46 +02:00
Benoit Blanchon
c37990d791
CollectionData: addSlot() returns an iterator
2023-07-17 11:20:46 +02:00
Benoit Blanchon
0f511b873d
VariantPool: store VariantSlots instead of chars
2023-07-12 15:03:56 +02:00
Benoit Blanchon
688e21e75f
Add CollectionIterator
2023-06-26 18:23:20 +02:00
Benoit Blanchon
d90b36c009
Extract VariantPool from ResourceManager
2023-06-18 10:14:39 +02:00
Benoit Blanchon
8147625921
ResourceManager: replace allocFromPool() with allocVariant()
2023-06-18 10:14:39 +02:00
Benoit Blanchon
4871380060
Rename MemoryPool to ResourceManager
2023-06-18 10:14:39 +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
636c8c36eb
Decouple MemoryPool from VariantSlot
2023-05-22 17:56:04 +02:00
Benoit Blanchon
044a4753d2
Rename StringCopier to StringBuilder
2023-05-10 10:12:55 +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
167ea08c53
Pass StringNode* to VariantData
2023-05-02 18:56:02 +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
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
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
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
d8f3058efa
Store the strings in the heap
2023-04-17 10:42:08 +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