Benoit Blanchon
208e7a3304
Fix integer overflow in MsgPackDeserializer
2024-06-11 09:47:11 +02:00
Benoit Blanchon
e4f3fd8c91
Add support for MsgPack extension
2024-06-06 18:33:48 +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
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
aeb30ef307
Support ElementProxy and MemberProxy in JsonDocument's constructor
2024-05-15 13:37:33 +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
2c670e0148
Implement MsgPackBinary using raw strings and converters
2024-05-06 11:10:02 +02:00
Benoit Blanchon
002b07f0c5
Reduce the size of deserializeMsgPack()
2024-05-02 20:29:00 +02:00
Benoit Blanchon
4d074840da
Optimize deserializeMsgPack()
2024-05-01 18:00:59 +02:00
David Gauchard
82de20ee14
Make string support even more generic
...
Ported from 57354de831
Closes #2084
2024-05-01 14:06:30 +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
cd4bf33132
Fix error "pasting X and Y does not give a valid preprocessing token"
2024-04-18 14:39:05 +02:00
Benoit Blanchon
2cfefe22ac
Add ARDUINOJSON_STRING_LENGTH_SIZE to the namespace name
2024-04-18 14:19:43 +02:00
RoboSchmied
0d43e51d48
Fix typo in "endianness"
...
Closes #2071
2024-03-26 13:43:07 +01:00
Benoit Blanchon
36e1eecc7d
Set version to 7.0.4
2024-03-12 09:40:46 +01:00
Benoit Blanchon
ca2f80aeaf
Add links to the documentation
2024-02-21 10:48:50 +01:00
Benoit Blanchon
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
Benoit Blanchon
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
Benoit Blanchon
483a2c9101
Mark JsonArray, JsonObject, and JsonVariant as final
...
See #2056
2024-02-18 10:52:07 +01:00
Benoit Blanchon
848c0cdc7e
Set version to 7.0.3
2024-02-05 13:34:38 +01:00
Benoit Blanchon
46a807bd30
Remove unused NO_INLINE
2024-02-05 11:56:08 +01:00
Benoit Blanchon
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
Benoit Blanchon
72642e3090
Fix compatibility with GCC 4.8
...
Closes #2045
2024-02-01 21:37:45 +01:00
Benoit Blanchon
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
Benoit Blanchon
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
Benoit Blanchon
296fe79bfd
Stop using CollectionIterator in JsonSerializer
...
This reduces stack consumption and code size.
See #2046
2024-02-01 10:24:00 +01:00
Benoit Blanchon
650d537b5d
Improve error messages when using char or char*
...
See #2043
2024-01-26 10:34:49 +01:00
Benoit Blanchon
0435945a62
Set version to 7.0.2
2024-01-19 14:36:16 +01:00
Benoit Blanchon
844a50296f
Fix link to shrinkToFit()'s documentation
2024-01-16 14:29:08 +01:00
Benoit Blanchon
1b143d383b
Fix assertion poolIndex < count_ after JsonDocument::clear()
...
Fixes #2034
2024-01-16 10:10:43 +01:00
Benoit Blanchon
94783fdd2a
Set version to 7.0.1
2024-01-10 21:14:07 +01:00
Benoit Blanchon
a7bfc2212c
Fix volatile bool serialized as 1 or 0
...
Ported from 5d1d2721d1
2024-01-10 14:03:12 +01:00
Benoit Blanchon
ca0dda7ac1
Add more tests for JsonArrayConst
2024-01-08 19:47:40 +01:00
Benoit Blanchon
08cac13c43
Add more tests for JsonObjectConst
2024-01-08 19:47:36 +01:00
Benoit Blanchon
cc42373367
Fix "no matching function" with JsonObjectConst::operator[]
...
Fixes #2019
2024-01-03 16:30:44 +01:00
Benoit Blanchon
9dc43d14f3
Set version to 7.0.0
2024-01-03 09:19:34 +01:00
Benoit Blanchon
0e8a236583
Update copyright year
2024-01-03 08:47:06 +01:00
Benoit Blanchon
955815fbfa
Fix function returns incomplete class type on IAR (issue #2001 )
...
Ported from 3e1be980d9
2023-12-07 15:51:29 +01:00
Benoit Blanchon
4cd03fbd26
Fix no instance of overloaded function... on IAR ( fixes #2001 )
...
Ported from 6ed87029e2
2023-12-07 15:51:29 +01:00
Benoit Blanchon
4774ca3d29
Force inline ZeroTerminatedRamString::size()
...
Ported from 7517ecb91b
2023-11-06 09:52:17 +01:00
Benoit Blanchon
26b2ff4c0f
Reorder StringNode's members to reduce code size
2023-10-09 15:41:20 +02:00
Benoit Blanchon
7e6b89d21f
Use only one byte for the string length on 8-bit platforms
2023-10-09 15:21:18 +02:00
Benoit Blanchon
d20e64187b
Use only one byte for the reference counter on 8-bit platforms
2023-10-09 14:47:47 +02:00
Benoit Blanchon
86e06c901f
Add ARDUINOJSON_SIZEOF_POINTER
2023-10-09 14:40:18 +02:00
Benoit Blanchon
6fe4b9c01d
Detect string length overflows
2023-10-09 14:15:55 +02:00