Commit Graph

898 Commits

Author SHA1 Message Date
Benoit Blanchon ed5f890d28 Replace JsonString::Ownership with bool 2024-11-26 14:32:36 +01:00
Benoit Blanchon 8931651317 JsonString: change default ownership to Copied 2024-11-26 10:10:52 +01:00
Benoit Blanchon c078957282 Remove unnecessary universal references 2024-11-25 12:25:59 +01:00
Benoit Blanchon cf084ae6b4 JsonString: move adapter class in the same file 2024-11-25 12:25:59 +01:00
Benoit Blanchon 594dc707cb Change string copy policy: only string literal are stored by pointer 2024-11-25 12:25:59 +01:00
Benoit Blanchon afc0a29c2c Polyfills: add decay 2024-11-25 12:25:59 +01:00
Benoit Blanchon a256ec7fff RamString: use a bitfield to reduce size 2024-11-25 12:25:59 +01:00
Benoit Blanchon 019e8326b7 Implement JsonString from RamString 2024-11-25 11:13:39 +01:00
Benoit Blanchon bee1095042 Merge all RAM string adapters 2024-11-25 10:46:35 +01:00
Benoit Blanchon de59dce527 Fix typo in comments 2024-11-25 10:46:34 +01:00
Benoit Blanchon 57a9c50b38 Make ElementProxy and MemberProxy non-copyable 2024-11-25 10:46:21 +01:00
Benoit Blanchon 5e7653b36a Store adapted string in MemberProxy 2024-11-17 15:46:46 +01:00
Benoit Blanchon 8110058729 Fix support for NUL characters in deserializeJson() 2024-11-17 15:40:21 +01:00
Benoit Blanchon f9fe8557f1 Set version to 7.2.1 2024-11-15 09:05:29 +01:00
Benoit Blanchon e007d71b4f Fix operator[](variant) ignoring NUL characters 2024-11-14 14:56:47 +01:00
Benoit Blanchon 9cf4f3871d Remove unused overload of stringCompare() and stringEquals() 2024-11-14 14:17:13 +01:00
Benoit Blanchon 1110d62128 Fix VLA support in JsonDocument::set() 2024-11-08 09:37:23 +01:00
Benoit Blanchon c6c0649d70 Replace typedef with using 2024-10-23 15:54:08 +02:00
Benoit Blanchon 0dd6231b3f Forbid deserializeJson(JsonArray|JsonObject, ...)
Closes #2135
2024-10-23 15:41:34 +02:00
Benoit Blanchon 48ee4a178b Use a const reference in is_convertible() 2024-09-21 09:22:12 +02:00
Benoit Blanchon cd4b2b2463 Set version to 7.2.0 2024-09-18 10:48:50 +02:00
Benoit Blanchon f806a42cc2 Add support for escape sequence \'
Fixes #2124
2024-09-17 10:33:47 +02:00
Benoit Blanchon c1a507c158 Set ARDUINOJSON_POOL_CAPACITY from ARDUINOJSON_SLOT_ID_SIZE
This avoids the integer overflow when `ARDUINOJSON_SLOT_ID_SIZE=1` on 64-bit architectures.
2024-09-11 21:08:51 +02:00
Benoit Blanchon a1809d0f31 Replace sizeof(VariantData) with sizeof(SlotData) 2024-09-10 18:26:58 +02:00
Benoit Blanchon d92eee8736 Deprecate containsKey() in favor of doc["key"].is<T>()
See #2121
2024-09-06 17:32:09 +02:00
Benoit Blanchon dd1d96e28f Group calls to getExtension()
This slightly reduces the code size.
2024-09-05 12:15:10 +02:00
Benoit Blanchon 3b64197869 MsgPackDeserializer: check extension allocation result 2024-09-04 14:34:02 +02:00
Benoit Blanchon 1f7a3f3174 JsonDeserializer: use float when the value has few digits 2024-09-04 14:33:14 +02:00
Benoit Blanchon 3b6bf45b8a Serialize float with less decimal places than double 2024-09-03 11:44:35 +02:00
Benoit Blanchon 65ba36622c Add VariantType 2024-09-02 17:56:19 +02:00
Benoit Blanchon ee02c0d573 Test extension slot allocation failure 2024-08-27 16:08:47 +02:00
Benoit Blanchon 0278e94fce Set ARDUINOJSON_USE_DOUBLE to 0 by default on 8-bit architectures 2024-08-27 15:46:12 +02:00
Benoit Blanchon 7643dadaec WIP 2024-08-27 14:40:24 +02:00
Benoit Blanchon c0bebe35f1 Improve message when user forgets third arg of serializeJson() et al.
See #1449, #1491, #1543, #1665, and #2122
2024-08-27 12:22:53 +02:00
Benoit Blanchon b5bcb37657 Use enable_if_t instead of enable_if 2024-08-27 10:00:09 +02:00
Benoit Blanchon e297932a98 Store 64-bit numbers (double and long long) in an additional slot
This change allows slots to be twices maller on 32-bit architectures.
See #1650 and #2103
2024-08-27 08:02:09 +02:00
Benoit Blanchon e682337655 Release VariantData resources explicitly before setting value 2024-08-26 15:09:56 +02:00
Benoit Blanchon 4ada3f849c Decouple parseNumber() from VariantData 2024-08-25 16:46:55 +02:00
Benoit Blanchon 5dd203bca4 Rename SlotWithId to Slot 2024-08-25 15:04:39 +02:00
Benoit Blanchon 362201241f Make MemoryPool generic 2024-08-25 14:58:23 +02:00
Benoit Blanchon 2be24eded8 Rename SlotWithId::slot() and VariantWithId::data() to ptr() 2024-08-25 14:54:45 +02:00
Benoit Blanchon 4327f72140 Remove VariantSlot 2024-08-25 14:45:59 +02:00
Benoit Blanchon f7f1b9745d Hide FreeSlot in MemoryPoolList 2024-08-25 14:39:18 +02:00
Benoit Blanchon cec18177b0 Move sizeofArray() and sizeofObject() 2024-08-25 14:36:38 +02:00
Benoit Blanchon f2894552f2 Rename VariantPool to MemoryPool 2024-08-25 14:36:38 +02:00
Benoit Blanchon d3721cb122 Make VariantSlot a union. Include next slot id in VariantData 2024-08-24 19:20:39 +02:00
Benoit Blanchon ab72bb8601 Rename flags_ to type_ 2024-08-24 11:18:21 +02:00
Benoit Blanchon 09c89dcacf Store object members with two slots: one for the key and one for the value 2024-08-24 10:45:51 +02:00
Benoit Blanchon a2b09bfbd2 Remove unused code 2024-08-23 15:28:44 +02:00
Benoit Blanchon 22dd4da3af Set version to 7.1.0 2024-06-27 18:20:22 +02:00