2049 Commits

Author SHA1 Message Date
5a60c55be7 Don't add partial objects when allocation fails
Fixes #2081
2024-05-23 18:36:24 +02:00
f99b2d63f9 Make error message more readable in case of an invalid conversion 2024-05-23 14:01:30 +02:00
1db803bcd3 Add helpers for type traits, such as enable_if_t 2024-05-22 10:22:59 +02:00
04326d2655 Allow Converter<T>::toJson() to return a boolean as an optimization 2024-05-22 09:27:15 +02:00
9e0c56acc3 Replace ConverterNeedsWriteableRef with function_traits 2024-05-22 09:27:14 +02:00
60f9f7eff6 Move CollectionData::releaseSlot() to ResourceManager::freeSlot() 2024-05-17 17:10:45 +02:00
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
c41e8cc634 Add dev container for Clang 11 2024-05-16 17:47:07 +02:00
d486157a9e CMake: fix detection of GCC 4.8 2024-05-16 17:47:07 +02:00
91aad55412 CI: set cancel-in-progress to true 2024-05-16 17:47:07 +02:00
98fca74f66 Fix undefined reference to VariantPool::usage() 2024-05-16 17:47:07 +02:00
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
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
4b779a7c1d Fix wrong build flags when COVERAGE is not defined 2024-05-16 17:47:07 +02:00
5d1aa04e21 CI: add Valgrind log to step summary 2024-05-16 17:47:07 +02:00
2f6db1edb0 CI: remove step summary
CTest errors were ignored in favor or `tee`'s exit code
2024-05-16 17:47:06 +02:00
aeb30ef307 Support ElementProxy and MemberProxy in JsonDocument's constructor 2024-05-15 13:37:33 +02:00
1c5e5db071 Test JsonDocument constructor with a JsonVariantConst argument
See #2091
2024-05-15 09:30:22 +02:00
68a13117dc Allow using a JsonVariant as a key or index
Closes #2080
2024-05-14 21:06:02 +02:00
071f718473 MsgPack: test failing string allocation 2024-05-06 11:23:20 +02:00
00949f8276 Remove redundant test 2024-05-06 11:16:55 +02:00
2c670e0148 Implement MsgPackBinary using raw strings and converters 2024-05-06 11:10:02 +02:00
002b07f0c5 Reduce the size of deserializeMsgPack() 2024-05-02 20:29:00 +02:00
5f5f927693 Add tests of as<MsgPackBinary>() 2024-05-01 19:26:19 +02:00
4d074840da Optimize deserializeMsgPack() 2024-05-01 18:00:59 +02:00
82de20ee14 Make string support even more generic
Ported from 57354de831
Closes #2084
2024-05-01 14:06:30 +02:00
ece4d030a8 CI: update runner for the lint job 2024-04-29 19:38:18 +02:00
4d5c17b5f6 Remove unused #include statements 2024-04-29 18:30:29 +02:00
18a9a5b590 Add MsgPack bin8/bin16/bin32 support
Closes #2078
Closes #922
2024-04-29 16:01:10 +02:00
cd4bf33132 Fix error "pasting X and Y does not give a valid preprocessing token" 2024-04-18 14:39:05 +02:00
2cfefe22ac Add ARDUINOJSON_STRING_LENGTH_SIZE to the namespace name 2024-04-18 14:19:43 +02:00
0d43e51d48 Fix typo in "endianness"
Closes #2071
2024-03-26 13:43:07 +01:00
ef28064317 CI: merge the two "amalgamate" jobs 2024-03-18 10:54:36 +01:00
7c62cdb264 CI: update GitHub Actions 2024-03-17 21:30:42 +01:00
0ab4bdd691 CI: add a workaround for actions/runner-images#9491 2024-03-17 21:30:42 +01:00
af8c615266 Rename tests/JsonObject/copy.cpp to set.cpp 2024-03-16 14:02:56 +01:00
bd13375729 CI: add timeouts in the gcc job 2024-03-14 10:27:09 +01:00
5f8502ce9d Upgrade to lock-threads version 5+ 2024-03-14 09:51:44 +01:00
1404b1ef70 Add a workaround for particle-iot/particle-cli#716 2024-03-12 10:02:30 +01:00
36e1eecc7d Set version to 7.0.4 v7.0.4 2024-03-12 09:40:46 +01:00
ca2f80aeaf Add links to the documentation 2024-02-21 10:48:50 +01:00
f17fc055d3 Make JSON_STRING_SIZE(N) return N+1 to fix third-party code
ThingsBoard uses this macro to compute size of char arrays ಠ_ಠ
https://github.com/thingsboard/thingsboard-client-sdk/blob/v0.12.2/src/Helper.h#L38

Closes #2054
2024-02-18 20:00:25 +01:00
04ac53d114 Remove final from JsonArray, JsonObject, and JsonVariant
`final` breaks ThingsBoard ಠ_ಠ
https://github.com/thingsboard/thingsboard-client-sdk/blob/v0.12.2/src/RPC_Response.h#L10

See #2056.
This reverts commit 483a2c9101.
2024-02-18 20:00:24 +01:00
483a2c9101 Mark JsonArray, JsonObject, and JsonVariant as final
See #2056
2024-02-18 10:52:07 +01:00
848c0cdc7e Set version to 7.0.3 v7.0.3 2024-02-05 13:34:38 +01:00
46a807bd30 Remove unused NO_INLINE 2024-02-05 11:56:08 +01:00
cb0dc94db4 Remove most FORCE_INLINEs
I kept only the ones that had a positive impact on code size AND no negative impact on stack memory.

Fixes #2046
2024-02-05 11:48:27 +01:00
72642e3090 Fix compatibility with GCC 4.8
Closes #2045
2024-02-01 21:37:45 +01:00
c98b05e207 Dont't inline JsonSerializer::visit(const ArrayData&)
It didn't improve the code size and was inconsistent with this other functions.
2024-02-01 10:24:01 +01:00
2a87cc5839 Stop using CollectionIterator in MsgPackSerializer
This doesn't reduce code size or stack usage, but as least it's consistent with `JsonSerializer`.
2024-02-01 10:24:01 +01:00