Commit Graph

918 Commits

Author SHA1 Message Date
Benoit Blanchon
cc077c1b63 Store static strings in a dedicated pool
Because a slot id is smaller than a pointer, this change will ultimately allow reducing the slot size.
2025-07-10 19:17:13 +02:00
Benoit Blanchon
509807d3c2 Remove CollectionIterator::nextId_ 2025-07-10 19:16:47 +02:00
Benoit Blanchon
733bc4ee82 Set version to 7.4.2 2025-06-20 09:37:14 +02:00
Benoit Blanchon
f051f8328d Undef true and false macros
Replacing `true` with `1` changes `JsonString("ABC", true)` into `JsonString("ABC", 1)`, so all static strings had a length of 1.

This is a workaround for arduino/ArduinoCore-sam#50
Fixes #2181
2025-06-19 13:59:15 +02:00
Benoit Blanchon
3252013509 Set version to 7.4.1 2025-04-11 15:43:42 +02:00
Benoit Blanchon
deab127a2f Fix crash with tiny Flash strings (issue #2170) 2025-04-11 10:23:43 +02:00
Benoit Blanchon
96281de682 Set version to 7.4.0 2025-04-09 14:49:13 +02:00
Benoit Blanchon
f0e84e4933 Fix support for const char[]
Fixes #2166
2025-04-09 08:55:09 +02:00
Benoit Blanchon
91397f9f06 Optimize storage of tiny strings (up to 3 characters) 2025-04-09 08:55:08 +02:00
Benoit Blanchon
7f75985e47 Change StringBuffer::save() to take a VariantData* 2025-02-28 10:05:50 +01:00
Benoit Blanchon
05b68fc7cc Change StringBuilder::save() to take a VariantData* 2025-02-28 09:59:46 +01:00
Benoit Blanchon
b06cee8f4d Remove the overload of setString() for StringNode 2025-02-28 09:23:56 +01:00
Benoit Blanchon
e03d8ae885 Set version to 7.3.1 2025-02-27 19:35:14 +01:00
Benoit Blanchon
cb1dcfa5e4 Reduce code size 2025-02-27 11:13:50 +01:00
Benoit Blanchon
67dd3120e6 Fix conversion from static string to number 2025-02-27 11:01:51 +01:00
Benoit Blanchon
9f3cf04415 Remove useless null check 2025-02-24 16:40:42 +01:00
Benoit Blanchon
01e49b33b7 Update copyright year 2025-02-24 15:18:26 +01:00
Benoit Blanchon
8f7e793f37 Set version to 7.3.0 2024-12-29 17:15:57 +01:00
Benoit Blanchon
de05814294 Move public facing SFINAEs to template declarations 2024-12-23 17:44:52 +01:00
Benoit Blanchon
e33e78d202 Rename undocumented JsonString::isLinked() to isStatic() 2024-11-26 14:32:50 +01:00
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