688e21e75f
Add CollectionIterator
2023-06-26 18:23:20 +02:00
d921cd6d02
Convert "variant functions" to static member functions
2023-06-26 12:33:34 +02:00
af8bdfbc8f
Convert "collection function" to static member functions
2023-06-26 11:58:28 +02:00
68b1602c35
Extract ObjectData
from CollectionData
2023-06-26 11:42:25 +02:00
7bc73d7849
Extract ArrayData
from CollectionData
2023-06-26 11:18:56 +02:00
67bbb4c90d
Manage resources in CollectionData
2023-06-26 10:07:40 +02:00
fffed4fba6
VariantAttorney: replace ResultOfGetData
with a trailing return type
2023-06-20 18:47:45 +02:00
8d7bbffe10
Simplify JsonObject::operator==
2023-06-20 18:47:44 +02:00
488475fe16
Simplify JsonArray::operator==
2023-06-20 18:47:42 +02:00
ba8d102432
Swap the parameters of JsonObject
's constructor
2023-06-20 18:47:40 +02:00
e96680eb29
Swap the parameters of JsonArray
's constructor
2023-06-20 18:47:38 +02:00
4c0fb4eb55
Swap the parameters of JsonVariant
's constructor
2023-06-20 18:47:37 +02:00
db2fb01795
Replace VariantPtr
, VariantConstPtr
, JsonPairPtr
, and JsonPairConstPtr
with Ptr<T>
2023-06-20 18:47:12 +02:00
18ae8ab7b9
Extract arrayEquals()
and objectEquals()
2023-06-19 17:38:17 +02:00
87c96f9306
ResourceManager: rename string functions
2023-06-19 11:25:04 +02:00
262747b419
ResourceManager: extract the StringPool class
2023-06-19 11:15:00 +02:00
3e0ba2028c
ResourceManager: extract functions to manipulate StringNode
s
2023-06-19 11:14:47 +02:00
972f665b07
Wandbox: upgrade to GCC 5.5.0
...
Ported from ecbc8e85d4
2023-06-19 09:17:36 +02:00
519e32badb
ResourceManager: remove unused operator new
2023-06-18 10:14:39 +02:00
d90b36c009
Extract VariantPool
from ResourceManager
2023-06-18 10:14:39 +02:00
8147625921
ResourceManager: replace allocFromPool()
with allocVariant()
2023-06-18 10:14:39 +02:00
2cf7fc5427
Remove unused #include
s
2023-06-18 10:14:39 +02:00
4871380060
Rename MemoryPool
to ResourceManager
2023-06-18 10:14:39 +02:00
2a663db3c7
MemoryPool: store usage and capacity as integers instead of using pointers
2023-06-18 10:14:39 +02:00
437307a955
MemoryPool: store slots at the beginning of the pool
2023-06-14 12:01:31 +02:00
56b3b4d5a9
MemoryPool: remove unused functions
2023-06-14 12:01:31 +02:00
f5355a9eb5
Move all functions from VariantFunctions.hpp
to `VariantData.hpp
2023-05-26 14:09:12 +02:00
779ee07de9
Add VariantData::copyFrom()
2023-05-26 14:09:12 +02:00
ab4e8547cb
Add VariantData::getOrAddElement()
2023-05-26 14:09:12 +02:00
585795d002
Add VariantData::removeElement()
2023-05-26 14:09:12 +02:00
68a167b167
Add VariantData::nesting()
2023-05-26 14:09:12 +02:00
78d4f721ff
Add VariantData::removeMember()
2023-05-26 14:09:00 +02:00
a97bcb6b2d
Add VariantData::getOrAddMember()
2023-05-26 14:09:00 +02:00
2da1f2553d
Add VariantData::addElement()
2023-05-26 14:09:00 +02:00
c267b55dec
Move raw string copy logic into VariantData::setRawString()
2023-05-25 10:06:01 +02:00
3a73ccf027
Move string copy logic into VariantData::setString()
2023-05-25 09:55:43 +02:00
8ab45e6f82
Add JsonVariant::release()
2023-05-25 09:35:40 +02:00
da45c4bc4f
Fix memory leak in JsonDeserializer
when object key is repeated
2023-05-25 09:21:54 +02:00
48acf963fb
Remove VariantImpl.hpp
2023-05-25 09:06:05 +02:00
ccccd1da11
Sort VariantData
's members alphabetically
2023-05-25 09:06:05 +02:00
78a30496be
Define all VariantData
's member functions inline
2023-05-25 09:03:16 +02:00
636c8c36eb
Decouple MemoryPool
from VariantSlot
2023-05-22 17:56:04 +02:00
5070fa6562
Rename memberFilter
to elementFilter
in deserializers
2023-05-22 14:11:59 +02:00
d9e035a288
Remove VariantData::isEnclosed()
2023-05-22 09:46:35 +02:00
aba8974148
Extract StringNode.hpp
2023-05-22 09:05:48 +02:00
044a4753d2
Rename StringCopier
to StringBuilder
2023-05-10 10:12:55 +02:00
ff0deee793
Remove string storage policy to always use StringCopier
2023-05-10 10:02:48 +02:00
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
9321f8fdab
Remove string size from VariantContent
( #1650 )
2023-05-02 18:56:17 +02:00
167ea08c53
Pass StringNode*
to VariantData
2023-05-02 18:56:02 +02:00