Benoit Blanchon
688e21e75f
Add CollectionIterator
2023-06-26 18:23:20 +02:00
Benoit Blanchon
d921cd6d02
Convert "variant functions" to static member functions
2023-06-26 12:33:34 +02:00
Benoit Blanchon
af8bdfbc8f
Convert "collection function" to static member functions
2023-06-26 11:58:28 +02:00
Benoit Blanchon
68b1602c35
Extract ObjectData
from CollectionData
2023-06-26 11:42:25 +02:00
Benoit Blanchon
7bc73d7849
Extract ArrayData
from CollectionData
2023-06-26 11:18:56 +02:00
Benoit Blanchon
67bbb4c90d
Manage resources in CollectionData
2023-06-26 10:07:40 +02:00
Benoit Blanchon
fffed4fba6
VariantAttorney: replace ResultOfGetData
with a trailing return type
2023-06-20 18:47:45 +02:00
Benoit Blanchon
8d7bbffe10
Simplify JsonObject::operator==
2023-06-20 18:47:44 +02:00
Benoit Blanchon
488475fe16
Simplify JsonArray::operator==
2023-06-20 18:47:42 +02:00
Benoit Blanchon
ba8d102432
Swap the parameters of JsonObject
's constructor
2023-06-20 18:47:40 +02:00
Benoit Blanchon
e96680eb29
Swap the parameters of JsonArray
's constructor
2023-06-20 18:47:38 +02:00
Benoit Blanchon
4c0fb4eb55
Swap the parameters of JsonVariant
's constructor
2023-06-20 18:47:37 +02:00
Benoit Blanchon
db2fb01795
Replace VariantPtr
, VariantConstPtr
, JsonPairPtr
, and JsonPairConstPtr
with Ptr<T>
2023-06-20 18:47:12 +02:00
Benoit Blanchon
18ae8ab7b9
Extract arrayEquals()
and objectEquals()
2023-06-19 17:38:17 +02:00
Benoit Blanchon
87c96f9306
ResourceManager: rename string functions
2023-06-19 11:25:04 +02:00
Benoit Blanchon
262747b419
ResourceManager: extract the StringPool class
2023-06-19 11:15:00 +02:00
Benoit Blanchon
3e0ba2028c
ResourceManager: extract functions to manipulate StringNode
s
2023-06-19 11:14:47 +02:00
Benoit Blanchon
972f665b07
Wandbox: upgrade to GCC 5.5.0
...
Ported from ecbc8e85d4
2023-06-19 09:17:36 +02:00
Benoit Blanchon
519e32badb
ResourceManager: remove unused operator new
2023-06-18 10:14:39 +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
2cf7fc5427
Remove unused #include
s
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
2a663db3c7
MemoryPool: store usage and capacity as integers instead of using pointers
2023-06-18 10:14:39 +02:00
Benoit Blanchon
437307a955
MemoryPool: store slots at the beginning of the pool
2023-06-14 12:01:31 +02:00
Benoit Blanchon
56b3b4d5a9
MemoryPool: remove unused functions
2023-06-14 12:01:31 +02:00
Benoit Blanchon
f5355a9eb5
Move all functions from VariantFunctions.hpp
to `VariantData.hpp
2023-05-26 14:09:12 +02:00
Benoit Blanchon
779ee07de9
Add VariantData::copyFrom()
2023-05-26 14:09:12 +02:00
Benoit Blanchon
ab4e8547cb
Add VariantData::getOrAddElement()
2023-05-26 14:09:12 +02:00
Benoit Blanchon
585795d002
Add VariantData::removeElement()
2023-05-26 14:09:12 +02:00
Benoit Blanchon
68a167b167
Add VariantData::nesting()
2023-05-26 14:09:12 +02:00
Benoit Blanchon
78d4f721ff
Add VariantData::removeMember()
2023-05-26 14:09:00 +02:00
Benoit Blanchon
a97bcb6b2d
Add VariantData::getOrAddMember()
2023-05-26 14:09:00 +02:00
Benoit Blanchon
2da1f2553d
Add VariantData::addElement()
2023-05-26 14:09:00 +02:00
Benoit Blanchon
c267b55dec
Move raw string copy logic into VariantData::setRawString()
2023-05-25 10:06:01 +02:00
Benoit Blanchon
3a73ccf027
Move string copy logic into VariantData::setString()
2023-05-25 09:55:43 +02:00
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