Commit Graph

2078 Commits

Author SHA1 Message Date
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 StringNodes 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 #includes 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