Commit Graph

2078 Commits

Author SHA1 Message Date
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
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
bf99aeedb1 Add @LArkema to the list of sponsors 💖 2024-07-02 10:27:36 +02:00
Benoit Blanchon
22dd4da3af Set version to 7.1.0 v7.1.0 2024-06-27 18:20:22 +02:00
Benoit Blanchon
55c3b9b3a7 CI: update macOS runner to macos-13 2024-06-18 13:51:40 +02:00
Benoit Blanchon
d83515dcda Add DevContainer files for Clang 13 to 17 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
b23ff65b99 Reduce MsgPack deserializer size 2024-06-18 13:51:33 +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
e9c87858d1 Remove files.associations from vscode settings 2024-06-18 09:31:39 +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
5b88b2c1f6 Update GitHub actions 2024-06-06 18:43:10 +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
f99b2d63f9 Make error message more readable in case of an invalid conversion 2024-05-23 14:01:30 +02:00
Benoit Blanchon
1db803bcd3 Add helpers for type traits, such as enable_if_t 2024-05-22 10:22:59 +02:00
Benoit Blanchon
04326d2655 Allow Converter<T>::toJson() to return a boolean as an optimization 2024-05-22 09:27:15 +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
c41e8cc634 Add dev container for Clang 11 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
91aad55412 CI: set cancel-in-progress to true 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
f1899d3049 Fix error resources_ may be used uninitialized
JsonArrayConst.hpp:29:56: error: 'array.ArduinoJson::V704HB22::JsonArrayConst::resources_' may be used uninitialized in this function [-Werror=maybe-uninitialized]
JsonObjectConst.hpp:62:56: error: 'null.ArduinoJson::V704HB22::JsonObjectConst::resources_' may be used uninitialized in this function [-Werror=maybe-uninitialized]
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
5d1aa04e21 CI: add Valgrind log to step summary 2024-05-16 17:47:07 +02:00
Benoit Blanchon
2f6db1edb0 CI: remove step summary
CTest errors were ignored in favor or `tee`'s exit code
2024-05-16 17:47:06 +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