Benoit Blanchon
7dece839d6
Extract VariantImpl
2025-10-03 10:13:34 +02:00
Benoit Blanchon
db2eec46c7
Add a pool dedicated to 8-byte values (double
/int64_t
/uint64_t
)
...
This new pool replaced the "extension" slot where a secondary variant slot was used to store 8-byte values.
2025-08-30 09:55:32 +02:00
Benoit Blanchon
dddc4912c4
Don't store string literals by pointer anymore
...
Fixes #2189
2025-08-28 10:04:11 +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
411424b74e
CI: upgrade clang-tidy
2025-05-20 20:55:01 +02:00
Benoit Blanchon
deab127a2f
Fix crash with tiny Flash strings (issue #2170 )
2025-04-11 10:23:43 +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
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
67dd3120e6
Fix conversion from static string to number
2025-02-27 11:01:51 +01:00
Benoit Blanchon
01e49b33b7
Update copyright year
2025-02-24 15:18:26 +01:00
Benoit Blanchon
254fa5712a
Update the release scripts to include the breaking changes section
2024-12-29 16:38:41 +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
cf084ae6b4
JsonString: move adapter class in the same file
2024-11-25 12:25:59 +01:00
Benoit Blanchon
f02fcc96a2
JsonArray: remove redundant tests
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
5f8e3c0f0f
Polyfills: test remove_cv
2024-11-25 12:25:59 +01:00
Benoit Blanchon
afc0a29c2c
Polyfills: add decay
2024-11-25 12:25:59 +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
7946ebe1a3
Wandbox: compile with gcc-head
2024-11-15 09:13:00 +01:00
Benoit Blanchon
e007d71b4f
Fix operator[](variant)
ignoring NUL characters
2024-11-14 14:56:47 +01:00
Benoit Blanchon
67a512a923
Clean up tests of adaptString()
2024-11-14 14:22:51 +01:00
Benoit Blanchon
31253dbe13
Add more tests with VLAs
2024-11-08 09:37:49 +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
61ec2c4f95
Reduce boilerplate for failing build tests
2024-10-23 15:47:59 +02:00
Benoit Blanchon
0dd6231b3f
Forbid deserializeJson(JsonArray|JsonObject, ...)
...
Closes #2135
2024-10-23 15:41:34 +02:00
Benoit Blanchon
20219d74f0
Tests: don't link FailingBuilds
with catch
2024-10-23 15:04:52 +02:00
Benoit Blanchon
48ee4a178b
Use a const
reference in is_convertible()
2024-09-21 09:22:12 +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
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
fd6314e132
Move some numbers tests to use_double_0.cpp
2024-09-04 14:29:19 +02:00
Benoit Blanchon
e4e2557b76
Move test of decomposeFloat()
2024-09-03 13:27:39 +02:00
Benoit Blanchon
3b6bf45b8a
Serialize float
with less decimal places than double
2024-09-03 11:44:35 +02:00
Benoit Blanchon
33452c1f37
Test JsonVariant::as<T>()
with extension slots
2024-08-27 16:08:47 +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
b4a5b053ca
Merge conf_test for linux and windows
...
This reverts commit 83516e1740
.
2024-08-27 08:03:55 +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
4ada3f849c
Decouple parseNumber()
from VariantData
2024-08-25 16:46:55 +02:00