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
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
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
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
386105be90
Allocate slot before key
2024-08-23 15:27:46 +02:00
Benoit Blanchon
83516e1740
Split conf_test between linux and windows
2024-08-23 15:24:45 +02:00
Benoit Blanchon
55c3b9b3a7
CI: update macOS runner to macos-13
2024-06-18 13:51:40 +02:00
Benoit Blanchon
e34c27723a
Fix build on modern compilers
2024-06-18 13:51:40 +02:00
Benoit Blanchon
556785dc1e
Read MsgPack's 64-bit ints even if ARDUINOJSON_USE_LONG_LONG is 0
2024-06-18 13:50:50 +02:00
Benoit Blanchon
208e7a3304
Fix integer overflow in MsgPackDeserializer
2024-06-11 09:47:11 +02:00
Benoit Blanchon
45611924f3
Tests: add user-defined literal ""_s for std::string
2024-06-07 09:35:45 +02:00
Benoit Blanchon
e4f3fd8c91
Add support for MsgPack extension
2024-06-06 18:33:48 +02:00
Benoit Blanchon
aec642be20
Rename tests in MixedConfiguration
2024-06-06 18:26:16 +02:00
Benoit Blanchon
5a60c55be7
Don't add partial objects when allocation fails
...
Fixes #2081
2024-05-23 18:36:24 +02:00
Benoit Blanchon
9e0c56acc3
Replace ConverterNeedsWriteableRef with function_traits
2024-05-22 09:27:14 +02:00
Benoit Blanchon
60f9f7eff6
Move CollectionData::releaseSlot() to ResourceManager::freeSlot()
2024-05-17 17:10:45 +02:00
Benoit Blanchon
0fe202af03
CI: don't build fuzzers with Clang 11
...
Clang 11 fails on GitHub Actions with the following error:
ERROR: UndefinedBehaviorSanitizer failed to allocate 0x0 (0) bytes of SetAlternateSignalStack (error code: 22)
Sanitizer CHECK failed: /build/llvm-toolchain-11-mnvtwk/llvm-toolchain-11-11.1.0/compiler-rt/lib/sanitizer_common/sanitizer_common.cpp:54 ((0 && "unable to mmap")) != (0) (0, 0)
2024-05-16 17:47:07 +02:00
Benoit Blanchon
d486157a9e
CMake: fix detection of GCC 4.8
2024-05-16 17:47:07 +02:00
Benoit Blanchon
98fca74f66
Fix undefined reference to VariantPool::usage()
2024-05-16 17:47:07 +02:00
Benoit Blanchon
60fb268d9a
Fix UBSAN error "member call does not point to an object of type"
...
runtime error: member call on address XXX which does not point to an object of type 'Allocator'
XXX: note: object is of type 'SpyingAllocator'
This is due to the fact that some of the compilation units have different library settings, so a different namespace, and therefore a different `Allocator` class.
2024-05-16 17:47:07 +02:00
Benoit Blanchon
4b779a7c1d
Fix wrong build flags when COVERAGE is not defined
2024-05-16 17:47:07 +02:00
Benoit Blanchon
aeb30ef307
Support ElementProxy and MemberProxy in JsonDocument's constructor
2024-05-15 13:37:33 +02:00
Benoit Blanchon
1c5e5db071
Test JsonDocument constructor with a JsonVariantConst argument
...
See #2091
2024-05-15 09:30:22 +02:00
Benoit Blanchon
68a13117dc
Allow using a JsonVariant as a key or index
...
Closes #2080
2024-05-14 21:06:02 +02:00
Benoit Blanchon
071f718473
MsgPack: test failing string allocation
2024-05-06 11:23:20 +02:00
Benoit Blanchon
00949f8276
Remove redundant test
2024-05-06 11:16:55 +02:00
Benoit Blanchon
2c670e0148
Implement MsgPackBinary using raw strings and converters
2024-05-06 11:10:02 +02:00
Benoit Blanchon
5f5f927693
Add tests of as<MsgPackBinary>()
2024-05-01 19:26:19 +02:00
Benoit Blanchon
4d074840da
Optimize deserializeMsgPack()
2024-05-01 18:00:59 +02:00
Benoit Blanchon
4d5c17b5f6
Remove unused #include statements
2024-04-29 18:30:29 +02:00
Aubrey (Sanae)
18a9a5b590
Add MsgPack bin8/bin16/bin32 support
...
Closes #2078
Closes #922
2024-04-29 16:01:10 +02:00
Benoit Blanchon
2cfefe22ac
Add ARDUINOJSON_STRING_LENGTH_SIZE to the namespace name
2024-04-18 14:19:43 +02:00