Commit Graph

1879 Commits

Author SHA1 Message Date
Benoit Blanchon 23b01a89b1 Fix double lookup in to<JsonVariant>() 2023-07-05 16:18:35 +02:00
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