From 7c7dd8a7a9cd6da913cec733d28f870b3ab99641 Mon Sep 17 00:00:00 2001 From: iranl Date: Tue, 15 Apr 2025 21:24:24 +0200 Subject: [PATCH] ArduinoJSON 7.4.1 --- lib/ArduinoJson/ArduinoJson.h | 2 +- lib/ArduinoJson/CHANGELOG.md | 17 +++ lib/ArduinoJson/CMakeLists.txt | 4 +- lib/ArduinoJson/LICENSE.txt | 2 +- lib/ArduinoJson/appveyor.yml | 2 +- .../JsonConfigFile/JsonConfigFile.ino | 2 +- .../JsonFilterExample/JsonFilterExample.ino | 2 +- .../JsonGeneratorExample.ino | 2 +- .../JsonHttpClient/JsonHttpClient.ino | 2 +- .../JsonParserExample/JsonParserExample.ino | 2 +- .../examples/JsonServer/JsonServer.ino | 2 +- .../examples/JsonUdpBeacon/JsonUdpBeacon.ino | 2 +- .../examples/MsgPackParser/MsgPackParser.ino | 2 +- .../ProgmemExample/ProgmemExample.ino | 2 +- .../examples/StringExample/StringExample.ino | 2 +- .../extras/ci/espidf/CMakeLists.txt | 2 +- .../extras/ci/espidf/main/CMakeLists.txt | 2 +- .../extras/ci/espidf/main/main.cpp | 2 +- lib/ArduinoJson/extras/fuzzing/CMakeLists.txt | 2 +- lib/ArduinoJson/extras/fuzzing/reproducer.cpp | 2 +- .../scripts/wandbox/JsonGeneratorExample.cpp | 2 +- .../scripts/wandbox/JsonParserExample.cpp | 2 +- .../scripts/wandbox/MsgPackParserExample.cpp | 2 +- lib/ArduinoJson/extras/tests/CMakeLists.txt | 2 +- .../extras/tests/Cpp17/CMakeLists.txt | 2 +- .../extras/tests/Cpp17/string_view.cpp | 2 +- .../extras/tests/Cpp20/CMakeLists.txt | 2 +- .../tests/Deprecated/BasicJsonDocument.cpp | 4 +- .../extras/tests/Deprecated/CMakeLists.txt | 2 +- .../tests/Deprecated/DynamicJsonDocument.cpp | 2 +- .../tests/Deprecated/StaticJsonDocument.cpp | 2 +- .../extras/tests/Deprecated/add.cpp | 2 +- .../extras/tests/Deprecated/containsKey.cpp | 2 +- .../tests/Deprecated/createNestedArray.cpp | 2 +- .../tests/Deprecated/createNestedObject.cpp | 2 +- .../extras/tests/Deprecated/macros.cpp | 2 +- .../extras/tests/Deprecated/memoryUsage.cpp | 2 +- .../extras/tests/Deprecated/shallowCopy.cpp | 2 +- .../extras/tests/FailingBuilds/CMakeLists.txt | 2 +- .../extras/tests/FailingBuilds/Issue978.cpp | 2 +- .../tests/FailingBuilds/assign_char.cpp | 2 +- .../FailingBuilds/deserialize_object.cpp | 2 +- .../tests/FailingBuilds/read_long_long.cpp | 2 +- .../tests/FailingBuilds/variant_as_char.cpp | 2 +- .../tests/FailingBuilds/write_long_long.cpp | 2 +- .../extras/tests/Helpers/Allocators.hpp | 2 +- .../extras/tests/Helpers/Arduino.h | 2 +- .../extras/tests/Helpers/CustomReader.hpp | 2 +- .../extras/tests/Helpers/Literals.hpp | 2 +- .../extras/tests/Helpers/api/Print.h | 14 +-- .../extras/tests/Helpers/api/Stream.h | 4 +- .../extras/tests/Helpers/api/String.h | 2 +- .../extras/tests/Helpers/avr/pgmspace.h | 2 +- .../tests/IntegrationTests/CMakeLists.txt | 2 +- .../tests/IntegrationTests/gbathree.cpp | 2 +- .../tests/IntegrationTests/issue772.cpp | 2 +- .../tests/IntegrationTests/openweathermap.cpp | 2 +- .../tests/IntegrationTests/round_trip.cpp | 2 +- .../extras/tests/JsonArray/CMakeLists.txt | 2 +- .../extras/tests/JsonArray/add.cpp | 2 +- .../extras/tests/JsonArray/clear.cpp | 2 +- .../extras/tests/JsonArray/compare.cpp | 2 +- .../extras/tests/JsonArray/copyArray.cpp | 2 +- .../extras/tests/JsonArray/equals.cpp | 2 +- .../extras/tests/JsonArray/isNull.cpp | 2 +- .../extras/tests/JsonArray/iterator.cpp | 2 +- .../extras/tests/JsonArray/nesting.cpp | 2 +- .../extras/tests/JsonArray/remove.cpp | 2 +- .../extras/tests/JsonArray/size.cpp | 2 +- .../extras/tests/JsonArray/subscript.cpp | 2 +- .../extras/tests/JsonArray/unbound.cpp | 2 +- .../tests/JsonArrayConst/CMakeLists.txt | 2 +- .../extras/tests/JsonArrayConst/equals.cpp | 2 +- .../extras/tests/JsonArrayConst/isNull.cpp | 2 +- .../extras/tests/JsonArrayConst/iterator.cpp | 2 +- .../extras/tests/JsonArrayConst/nesting.cpp | 2 +- .../extras/tests/JsonArrayConst/size.cpp | 2 +- .../extras/tests/JsonArrayConst/subscript.cpp | 2 +- .../tests/JsonDeserializer/CMakeLists.txt | 2 +- .../JsonDeserializer/DeserializationError.cpp | 2 +- .../extras/tests/JsonDeserializer/array.cpp | 2 +- .../JsonDeserializer/destination_types.cpp | 2 +- .../extras/tests/JsonDeserializer/errors.cpp | 2 +- .../extras/tests/JsonDeserializer/filter.cpp | 2 +- .../tests/JsonDeserializer/input_types.cpp | 4 +- .../extras/tests/JsonDeserializer/misc.cpp | 2 +- .../tests/JsonDeserializer/nestingLimit.cpp | 2 +- .../extras/tests/JsonDeserializer/number.cpp | 2 +- .../extras/tests/JsonDeserializer/object.cpp | 23 ++-- .../extras/tests/JsonDeserializer/string.cpp | 6 +- .../extras/tests/JsonDocument/CMakeLists.txt | 2 +- .../tests/JsonDocument/ElementProxy.cpp | 2 +- .../extras/tests/JsonDocument/MemberProxy.cpp | 2 +- .../extras/tests/JsonDocument/add.cpp | 2 +- .../extras/tests/JsonDocument/assignment.cpp | 2 +- .../extras/tests/JsonDocument/cast.cpp | 2 +- .../extras/tests/JsonDocument/clear.cpp | 2 +- .../extras/tests/JsonDocument/compare.cpp | 2 +- .../extras/tests/JsonDocument/constructor.cpp | 2 +- .../extras/tests/JsonDocument/isNull.cpp | 2 +- .../extras/tests/JsonDocument/nesting.cpp | 2 +- .../extras/tests/JsonDocument/overflowed.cpp | 2 +- .../extras/tests/JsonDocument/remove.cpp | 2 +- .../extras/tests/JsonDocument/set.cpp | 7 ++ .../extras/tests/JsonDocument/shrinkToFit.cpp | 2 +- .../extras/tests/JsonDocument/size.cpp | 2 +- .../extras/tests/JsonDocument/subscript.cpp | 2 +- .../extras/tests/JsonObject/CMakeLists.txt | 2 +- .../extras/tests/JsonObject/clear.cpp | 2 +- .../extras/tests/JsonObject/compare.cpp | 2 +- .../extras/tests/JsonObject/equals.cpp | 2 +- .../extras/tests/JsonObject/isNull.cpp | 2 +- .../extras/tests/JsonObject/iterator.cpp | 2 +- .../extras/tests/JsonObject/nesting.cpp | 2 +- .../extras/tests/JsonObject/remove.cpp | 2 +- .../extras/tests/JsonObject/set.cpp | 8 +- .../extras/tests/JsonObject/size.cpp | 2 +- .../extras/tests/JsonObject/std_string.cpp | 2 +- .../extras/tests/JsonObject/subscript.cpp | 2 +- .../extras/tests/JsonObject/unbound.cpp | 2 +- .../tests/JsonObjectConst/CMakeLists.txt | 2 +- .../extras/tests/JsonObjectConst/equals.cpp | 2 +- .../extras/tests/JsonObjectConst/isNull.cpp | 2 +- .../extras/tests/JsonObjectConst/iterator.cpp | 2 +- .../extras/tests/JsonObjectConst/nesting.cpp | 2 +- .../extras/tests/JsonObjectConst/size.cpp | 2 +- .../tests/JsonObjectConst/subscript.cpp | 2 +- .../tests/JsonSerializer/CMakeLists.txt | 2 +- .../tests/JsonSerializer/CustomWriter.cpp | 2 +- .../extras/tests/JsonSerializer/JsonArray.cpp | 2 +- .../tests/JsonSerializer/JsonArrayPretty.cpp | 2 +- .../tests/JsonSerializer/JsonObject.cpp | 2 +- .../tests/JsonSerializer/JsonObjectPretty.cpp | 2 +- .../tests/JsonSerializer/JsonVariant.cpp | 2 +- .../tests/JsonSerializer/std_stream.cpp | 2 +- .../tests/JsonSerializer/std_string.cpp | 2 +- .../extras/tests/JsonVariant/CMakeLists.txt | 2 +- .../extras/tests/JsonVariant/add.cpp | 2 +- .../extras/tests/JsonVariant/as.cpp | 17 ++- .../extras/tests/JsonVariant/clear.cpp | 2 +- .../extras/tests/JsonVariant/compare.cpp | 2 +- .../extras/tests/JsonVariant/converters.cpp | 2 +- .../extras/tests/JsonVariant/copy.cpp | 2 +- .../extras/tests/JsonVariant/is.cpp | 2 +- .../extras/tests/JsonVariant/isnull.cpp | 2 +- .../extras/tests/JsonVariant/misc.cpp | 2 +- .../extras/tests/JsonVariant/nesting.cpp | 2 +- .../extras/tests/JsonVariant/or.cpp | 2 +- .../extras/tests/JsonVariant/overflow.cpp | 2 +- .../extras/tests/JsonVariant/remove.cpp | 2 +- .../extras/tests/JsonVariant/set.cpp | 14 ++- .../extras/tests/JsonVariant/size.cpp | 2 +- .../tests/JsonVariant/stl_containers.cpp | 2 +- .../extras/tests/JsonVariant/subscript.cpp | 2 +- .../extras/tests/JsonVariant/types.cpp | 2 +- .../extras/tests/JsonVariant/unbound.cpp | 2 +- .../tests/JsonVariantConst/CMakeLists.txt | 2 +- .../extras/tests/JsonVariantConst/as.cpp | 2 +- .../extras/tests/JsonVariantConst/is.cpp | 2 +- .../extras/tests/JsonVariantConst/isnull.cpp | 2 +- .../extras/tests/JsonVariantConst/nesting.cpp | 2 +- .../extras/tests/JsonVariantConst/size.cpp | 2 +- .../tests/JsonVariantConst/subscript.cpp | 2 +- .../extras/tests/Misc/CMakeLists.txt | 3 +- .../extras/tests/Misc/JsonString.cpp | 2 +- .../extras/tests/Misc/NoArduinoHeader.cpp | 2 +- lib/ArduinoJson/extras/tests/Misc/Readers.cpp | 2 +- .../extras/tests/Misc/StringAdapters.cpp | 3 +- .../extras/tests/Misc/StringWriter.cpp | 2 +- .../extras/tests/Misc/TypeTraits.cpp | 2 +- lib/ArduinoJson/extras/tests/Misc/Utf16.cpp | 2 +- lib/ArduinoJson/extras/tests/Misc/Utf8.cpp | 2 +- .../extras/tests/Misc/arithmeticCompare.cpp | 2 +- .../extras/tests/Misc/conflicts.cpp | 2 +- .../extras/tests/Misc/custom_string.hpp | 2 +- .../extras/tests/Misc/issue1967.cpp | 2 +- .../extras/tests/Misc/issue2129.cpp | 2 +- .../extras/tests/Misc/issue2166.cpp | 22 ++++ .../extras/tests/Misc/printable.cpp | 2 +- .../extras/tests/Misc/unsigned_char.cpp | 2 +- lib/ArduinoJson/extras/tests/Misc/version.cpp | 2 +- .../extras/tests/Misc/weird_strcmp.hpp | 2 +- .../tests/MixedConfiguration/CMakeLists.txt | 2 +- .../MixedConfiguration/enable_comments_0.cpp | 2 +- .../MixedConfiguration/enable_comments_1.cpp | 2 +- .../MixedConfiguration/enable_progmem_1.cpp | 2 +- .../tests/MixedConfiguration/issue1707.cpp | 2 +- .../tests/MsgPackDeserializer/CMakeLists.txt | 2 +- .../MsgPackDeserializer/deserializeArray.cpp | 25 +++- .../MsgPackDeserializer/deserializeObject.cpp | 2 +- .../deserializeVariant.cpp | 35 +++--- .../MsgPackDeserializer/destination_types.cpp | 2 +- .../MsgPackDeserializer/doubleToFloat.cpp | 2 +- .../tests/MsgPackDeserializer/errors.cpp | 2 +- .../tests/MsgPackDeserializer/filter.cpp | 2 +- .../tests/MsgPackDeserializer/input_types.cpp | 2 +- .../MsgPackDeserializer/nestingLimit.cpp | 2 +- .../tests/MsgPackSerializer/CMakeLists.txt | 2 +- .../MsgPackSerializer/destination_types.cpp | 2 +- .../tests/MsgPackSerializer/measure.cpp | 2 +- .../MsgPackSerializer/serializeArray.cpp | 2 +- .../MsgPackSerializer/serializeObject.cpp | 2 +- .../MsgPackSerializer/serializeVariant.cpp | 2 +- .../extras/tests/Numbers/CMakeLists.txt | 2 +- .../extras/tests/Numbers/convertNumber.cpp | 2 +- .../extras/tests/Numbers/decomposeFloat.cpp | 2 +- .../extras/tests/Numbers/parseDouble.cpp | 2 +- .../extras/tests/Numbers/parseFloat.cpp | 2 +- .../extras/tests/Numbers/parseInteger.cpp | 2 +- .../extras/tests/Numbers/parseNumber.cpp | 2 +- .../tests/ResourceManager/CMakeLists.txt | 3 +- .../tests/ResourceManager/StringBuffer.cpp | 50 ++++++++ .../tests/ResourceManager/StringBuilder.cpp | 115 ++++++++++++------ .../tests/ResourceManager/allocVariant.cpp | 2 +- .../extras/tests/ResourceManager/clear.cpp | 2 +- .../tests/ResourceManager/saveString.cpp | 2 +- .../tests/ResourceManager/shrinkToFit.cpp | 2 +- .../extras/tests/ResourceManager/size.cpp | 2 +- .../extras/tests/ResourceManager/swap.cpp | 2 +- .../extras/tests/TextFormatter/CMakeLists.txt | 2 +- .../extras/tests/TextFormatter/writeFloat.cpp | 2 +- .../tests/TextFormatter/writeInteger.cpp | 2 +- .../tests/TextFormatter/writeString.cpp | 2 +- lib/ArduinoJson/idf_component.yml | 4 +- lib/ArduinoJson/library.json | 4 +- lib/ArduinoJson/library.properties | 4 +- lib/ArduinoJson/src/ArduinoJson.h | 2 +- lib/ArduinoJson/src/ArduinoJson.hpp | 2 +- .../src/ArduinoJson/Array/ArrayData.hpp | 2 +- .../src/ArduinoJson/Array/ArrayImpl.hpp | 2 +- .../src/ArduinoJson/Array/ElementProxy.hpp | 2 +- .../src/ArduinoJson/Array/JsonArray.hpp | 2 +- .../src/ArduinoJson/Array/JsonArrayConst.hpp | 2 +- .../ArduinoJson/Array/JsonArrayIterator.hpp | 2 +- .../src/ArduinoJson/Array/Utilities.hpp | 2 +- .../ArduinoJson/Collection/CollectionData.hpp | 2 +- .../ArduinoJson/Collection/CollectionImpl.hpp | 2 +- .../src/ArduinoJson/Configuration.hpp | 2 +- .../Deserialization/DeserializationError.hpp | 2 +- .../DeserializationOptions.hpp | 2 +- .../ArduinoJson/Deserialization/Filter.hpp | 2 +- .../Deserialization/NestingLimit.hpp | 2 +- .../ArduinoJson/Deserialization/Reader.hpp | 2 +- .../Readers/ArduinoStreamReader.hpp | 2 +- .../Readers/ArduinoStringReader.hpp | 2 +- .../Deserialization/Readers/FlashReader.hpp | 2 +- .../Readers/IteratorReader.hpp | 2 +- .../Deserialization/Readers/RamReader.hpp | 2 +- .../Readers/StdStreamReader.hpp | 2 +- .../Deserialization/Readers/VariantReader.hpp | 2 +- .../Deserialization/deserialize.hpp | 2 +- .../src/ArduinoJson/Document/JsonDocument.hpp | 2 +- .../src/ArduinoJson/Json/EscapeSequence.hpp | 2 +- .../src/ArduinoJson/Json/JsonDeserializer.hpp | 14 +-- .../src/ArduinoJson/Json/JsonSerializer.hpp | 2 +- .../src/ArduinoJson/Json/Latch.hpp | 2 +- .../ArduinoJson/Json/PrettyJsonSerializer.hpp | 2 +- .../src/ArduinoJson/Json/TextFormatter.hpp | 2 +- .../src/ArduinoJson/Json/Utf16.hpp | 2 +- lib/ArduinoJson/src/ArduinoJson/Json/Utf8.hpp | 2 +- .../src/ArduinoJson/Memory/Alignment.hpp | 2 +- .../src/ArduinoJson/Memory/Allocator.hpp | 2 +- .../src/ArduinoJson/Memory/MemoryPool.hpp | 2 +- .../src/ArduinoJson/Memory/MemoryPoolList.hpp | 2 +- .../ArduinoJson/Memory/ResourceManager.hpp | 2 +- .../Memory/ResourceManagerImpl.hpp | 2 +- .../src/ArduinoJson/Memory/StringBuffer.hpp | 30 +++-- .../src/ArduinoJson/Memory/StringBuilder.hpp | 18 ++- .../src/ArduinoJson/Memory/StringNode.hpp | 2 +- .../src/ArduinoJson/Memory/StringPool.hpp | 2 +- .../src/ArduinoJson/Misc/SerializedValue.hpp | 2 +- .../MsgPack/MsgPackDeserializer.hpp | 19 ++- .../ArduinoJson/MsgPack/MsgPackSerializer.hpp | 2 +- .../src/ArduinoJson/MsgPack/endianness.hpp | 2 +- .../src/ArduinoJson/MsgPack/ieee754.hpp | 2 +- lib/ArduinoJson/src/ArduinoJson/Namespace.hpp | 2 +- .../src/ArduinoJson/Numbers/FloatParts.hpp | 2 +- .../src/ArduinoJson/Numbers/FloatTraits.hpp | 2 +- .../src/ArduinoJson/Numbers/JsonFloat.hpp | 2 +- .../src/ArduinoJson/Numbers/JsonInteger.hpp | 2 +- .../ArduinoJson/Numbers/arithmeticCompare.hpp | 2 +- .../src/ArduinoJson/Numbers/convertNumber.hpp | 2 +- .../src/ArduinoJson/Numbers/parseNumber.hpp | 2 +- .../src/ArduinoJson/Object/JsonObject.hpp | 2 +- .../ArduinoJson/Object/JsonObjectConst.hpp | 2 +- .../ArduinoJson/Object/JsonObjectIterator.hpp | 2 +- .../src/ArduinoJson/Object/JsonPair.hpp | 2 +- .../src/ArduinoJson/Object/MemberProxy.hpp | 2 +- .../src/ArduinoJson/Object/ObjectData.hpp | 6 +- .../src/ArduinoJson/Object/ObjectImpl.hpp | 18 ++- .../src/ArduinoJson/Polyfills/alias_cast.hpp | 2 +- .../src/ArduinoJson/Polyfills/assert.hpp | 2 +- .../src/ArduinoJson/Polyfills/attributes.hpp | 2 +- .../src/ArduinoJson/Polyfills/ctype.hpp | 2 +- .../src/ArduinoJson/Polyfills/integer.hpp | 2 +- .../src/ArduinoJson/Polyfills/limits.hpp | 2 +- .../src/ArduinoJson/Polyfills/math.hpp | 2 +- .../src/ArduinoJson/Polyfills/mpl/max.hpp | 2 +- .../src/ArduinoJson/Polyfills/pgmspace.hpp | 2 +- .../Polyfills/pgmspace_generic.hpp | 2 +- .../ArduinoJson/Polyfills/preprocessor.hpp | 2 +- .../src/ArduinoJson/Polyfills/type_traits.hpp | 2 +- .../Polyfills/type_traits/conditional.hpp | 2 +- .../Polyfills/type_traits/decay.hpp | 2 +- .../Polyfills/type_traits/declval.hpp | 2 +- .../Polyfills/type_traits/enable_if.hpp | 2 +- .../Polyfills/type_traits/function_traits.hpp | 2 +- .../type_traits/integral_constant.hpp | 2 +- .../Polyfills/type_traits/is_array.hpp | 2 +- .../Polyfills/type_traits/is_base_of.hpp | 2 +- .../Polyfills/type_traits/is_class.hpp | 2 +- .../Polyfills/type_traits/is_const.hpp | 2 +- .../Polyfills/type_traits/is_convertible.hpp | 2 +- .../Polyfills/type_traits/is_enum.hpp | 2 +- .../type_traits/is_floating_point.hpp | 2 +- .../Polyfills/type_traits/is_integral.hpp | 2 +- .../Polyfills/type_traits/is_pointer.hpp | 2 +- .../Polyfills/type_traits/is_same.hpp | 2 +- .../Polyfills/type_traits/is_signed.hpp | 2 +- .../Polyfills/type_traits/is_unsigned.hpp | 2 +- .../Polyfills/type_traits/make_unsigned.hpp | 2 +- .../Polyfills/type_traits/remove_const.hpp | 2 +- .../Polyfills/type_traits/remove_cv.hpp | 2 +- .../type_traits/remove_reference.hpp | 2 +- .../Polyfills/type_traits/type_identity.hpp | 2 +- .../Polyfills/type_traits/void_t.hpp | 2 +- .../src/ArduinoJson/Polyfills/utility.hpp | 2 +- .../Serialization/CountingDecorator.hpp | 2 +- .../src/ArduinoJson/Serialization/Writer.hpp | 2 +- .../Writers/ArduinoStringWriter.hpp | 2 +- .../Serialization/Writers/DummyWriter.hpp | 2 +- .../Serialization/Writers/PrintWriter.hpp | 2 +- .../Writers/StaticStringWriter.hpp | 2 +- .../Serialization/Writers/StdStreamWriter.hpp | 2 +- .../Serialization/Writers/StdStringWriter.hpp | 2 +- .../src/ArduinoJson/Serialization/measure.hpp | 2 +- .../ArduinoJson/Serialization/serialize.hpp | 2 +- .../Strings/Adapters/FlashString.hpp | 2 +- .../Strings/Adapters/RamString.hpp | 15 ++- .../Strings/Adapters/StringObject.hpp | 2 +- .../src/ArduinoJson/Strings/IsString.hpp | 2 +- .../src/ArduinoJson/Strings/JsonString.hpp | 2 +- .../src/ArduinoJson/Strings/StringAdapter.hpp | 2 +- .../ArduinoJson/Strings/StringAdapters.hpp | 2 +- .../src/ArduinoJson/Strings/StringTraits.hpp | 2 +- .../src/ArduinoJson/Variant/Converter.hpp | 2 +- .../src/ArduinoJson/Variant/ConverterImpl.hpp | 8 +- .../src/ArduinoJson/Variant/JsonVariant.hpp | 2 +- .../ArduinoJson/Variant/JsonVariantConst.hpp | 2 +- .../ArduinoJson/Variant/JsonVariantCopier.hpp | 2 +- .../Variant/JsonVariantVisitor.hpp | 2 +- .../ArduinoJson/Variant/VariantAttorney.hpp | 2 +- .../ArduinoJson/Variant/VariantCompare.hpp | 2 +- .../ArduinoJson/Variant/VariantContent.hpp | 6 +- .../src/ArduinoJson/Variant/VariantData.hpp | 69 +++++++++-- .../Variant/VariantDataVisitor.hpp | 2 +- .../src/ArduinoJson/Variant/VariantImpl.hpp | 7 +- .../ArduinoJson/Variant/VariantOperators.hpp | 2 +- .../ArduinoJson/Variant/VariantRefBase.hpp | 2 +- .../Variant/VariantRefBaseImpl.hpp | 2 +- .../src/ArduinoJson/Variant/VariantTag.hpp | 2 +- .../src/ArduinoJson/Variant/VariantTo.hpp | 2 +- .../src/ArduinoJson/compatibility.hpp | 2 +- lib/ArduinoJson/src/ArduinoJson/version.hpp | 10 +- lib/ArduinoJson/src/CMakeLists.txt | 2 +- 365 files changed, 780 insertions(+), 490 deletions(-) create mode 100644 lib/ArduinoJson/extras/tests/Misc/issue2166.cpp create mode 100644 lib/ArduinoJson/extras/tests/ResourceManager/StringBuffer.cpp diff --git a/lib/ArduinoJson/ArduinoJson.h b/lib/ArduinoJson/ArduinoJson.h index 9939599..a0caed7 100644 --- a/lib/ArduinoJson/ArduinoJson.h +++ b/lib/ArduinoJson/ArduinoJson.h @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include "src/ArduinoJson.h" diff --git a/lib/ArduinoJson/CHANGELOG.md b/lib/ArduinoJson/CHANGELOG.md index c0a8b4b..10e4629 100644 --- a/lib/ArduinoJson/CHANGELOG.md +++ b/lib/ArduinoJson/CHANGELOG.md @@ -1,6 +1,23 @@ ArduinoJson: change log ======================= +v7.4.1 (2025-04-11) +------ + +* Fix crash with tiny Flash strings (issue #2170) + +v7.4.0 (2025-04-09) +------ + +* Optimize storage of tiny strings (up to 3 characters) +* Fix support for `const char[]` (issue #2166) + +v7.3.1 (2025-02-27) +------ + +* Fix conversion from static string to number +* Slightly reduce code size + v7.3.0 (2024-12-29) ------ diff --git a/lib/ArduinoJson/CMakeLists.txt b/lib/ArduinoJson/CMakeLists.txt index b607bdb..bdeb803 100644 --- a/lib/ArduinoJson/CMakeLists.txt +++ b/lib/ArduinoJson/CMakeLists.txt @@ -1,5 +1,5 @@ # ArduinoJson - https://arduinojson.org -# Copyright © 2014-2024, Benoit BLANCHON +# Copyright © 2014-2025, Benoit BLANCHON # MIT License cmake_minimum_required(VERSION 3.15) @@ -10,7 +10,7 @@ if(ESP_PLATFORM) return() endif() -project(ArduinoJson VERSION 7.3.0) +project(ArduinoJson VERSION 7.4.1) if(CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME) include(CTest) diff --git a/lib/ArduinoJson/LICENSE.txt b/lib/ArduinoJson/LICENSE.txt index 56bb92b..782b05d 100644 --- a/lib/ArduinoJson/LICENSE.txt +++ b/lib/ArduinoJson/LICENSE.txt @@ -1,7 +1,7 @@ The MIT License (MIT) --------------------- -Copyright © 2014-2024, Benoit BLANCHON +Copyright © 2014-2025, Benoit BLANCHON Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: diff --git a/lib/ArduinoJson/appveyor.yml b/lib/ArduinoJson/appveyor.yml index cdcadc1..6802e15 100644 --- a/lib/ArduinoJson/appveyor.yml +++ b/lib/ArduinoJson/appveyor.yml @@ -1,4 +1,4 @@ -version: 7.3.0.{build} +version: 7.4.1.{build} environment: matrix: - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2022 diff --git a/lib/ArduinoJson/examples/JsonConfigFile/JsonConfigFile.ino b/lib/ArduinoJson/examples/JsonConfigFile/JsonConfigFile.ino index cd94064..32ad3a5 100644 --- a/lib/ArduinoJson/examples/JsonConfigFile/JsonConfigFile.ino +++ b/lib/ArduinoJson/examples/JsonConfigFile/JsonConfigFile.ino @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License // // This example shows how to store your project configuration in a file. diff --git a/lib/ArduinoJson/examples/JsonFilterExample/JsonFilterExample.ino b/lib/ArduinoJson/examples/JsonFilterExample/JsonFilterExample.ino index 1c20fe9..16e49dd 100644 --- a/lib/ArduinoJson/examples/JsonFilterExample/JsonFilterExample.ino +++ b/lib/ArduinoJson/examples/JsonFilterExample/JsonFilterExample.ino @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License // // This example shows how to use DeserializationOption::Filter diff --git a/lib/ArduinoJson/examples/JsonGeneratorExample/JsonGeneratorExample.ino b/lib/ArduinoJson/examples/JsonGeneratorExample/JsonGeneratorExample.ino index d67b885..ffbc9a1 100644 --- a/lib/ArduinoJson/examples/JsonGeneratorExample/JsonGeneratorExample.ino +++ b/lib/ArduinoJson/examples/JsonGeneratorExample/JsonGeneratorExample.ino @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License // // This example shows how to generate a JSON document with ArduinoJson. diff --git a/lib/ArduinoJson/examples/JsonHttpClient/JsonHttpClient.ino b/lib/ArduinoJson/examples/JsonHttpClient/JsonHttpClient.ino index 9315118..c2d3846 100644 --- a/lib/ArduinoJson/examples/JsonHttpClient/JsonHttpClient.ino +++ b/lib/ArduinoJson/examples/JsonHttpClient/JsonHttpClient.ino @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License // // This example shows how to parse a JSON document in an HTTP response. diff --git a/lib/ArduinoJson/examples/JsonParserExample/JsonParserExample.ino b/lib/ArduinoJson/examples/JsonParserExample/JsonParserExample.ino index 7220dcf..7b32616 100644 --- a/lib/ArduinoJson/examples/JsonParserExample/JsonParserExample.ino +++ b/lib/ArduinoJson/examples/JsonParserExample/JsonParserExample.ino @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License // // This example shows how to deserialize a JSON document with ArduinoJson. diff --git a/lib/ArduinoJson/examples/JsonServer/JsonServer.ino b/lib/ArduinoJson/examples/JsonServer/JsonServer.ino index d8b65c8..51fdf3c 100644 --- a/lib/ArduinoJson/examples/JsonServer/JsonServer.ino +++ b/lib/ArduinoJson/examples/JsonServer/JsonServer.ino @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License // // This example shows how to implement an HTTP server that sends a JSON document diff --git a/lib/ArduinoJson/examples/JsonUdpBeacon/JsonUdpBeacon.ino b/lib/ArduinoJson/examples/JsonUdpBeacon/JsonUdpBeacon.ino index 6a4e08f..d6ecb55 100644 --- a/lib/ArduinoJson/examples/JsonUdpBeacon/JsonUdpBeacon.ino +++ b/lib/ArduinoJson/examples/JsonUdpBeacon/JsonUdpBeacon.ino @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License // // This example shows how to send a JSON document to a UDP socket. diff --git a/lib/ArduinoJson/examples/MsgPackParser/MsgPackParser.ino b/lib/ArduinoJson/examples/MsgPackParser/MsgPackParser.ino index dd7d7b6..3649081 100644 --- a/lib/ArduinoJson/examples/MsgPackParser/MsgPackParser.ino +++ b/lib/ArduinoJson/examples/MsgPackParser/MsgPackParser.ino @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License // // This example shows how to deserialize a MessagePack document with diff --git a/lib/ArduinoJson/examples/ProgmemExample/ProgmemExample.ino b/lib/ArduinoJson/examples/ProgmemExample/ProgmemExample.ino index ffeb79e..729cb8b 100644 --- a/lib/ArduinoJson/examples/ProgmemExample/ProgmemExample.ino +++ b/lib/ArduinoJson/examples/ProgmemExample/ProgmemExample.ino @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License // // This example shows the different ways you can use Flash strings with diff --git a/lib/ArduinoJson/examples/StringExample/StringExample.ino b/lib/ArduinoJson/examples/StringExample/StringExample.ino index fb5f243..845df9d 100644 --- a/lib/ArduinoJson/examples/StringExample/StringExample.ino +++ b/lib/ArduinoJson/examples/StringExample/StringExample.ino @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License // // This example shows the different ways you can use String with ArduinoJson. diff --git a/lib/ArduinoJson/extras/ci/espidf/CMakeLists.txt b/lib/ArduinoJson/extras/ci/espidf/CMakeLists.txt index 38d393d..6135701 100644 --- a/lib/ArduinoJson/extras/ci/espidf/CMakeLists.txt +++ b/lib/ArduinoJson/extras/ci/espidf/CMakeLists.txt @@ -1,5 +1,5 @@ # ArduinoJson - https://arduinojson.org -# Copyright © 2014-2024, Benoit BLANCHON +# Copyright © 2014-2025, Benoit BLANCHON # MIT License cmake_minimum_required(VERSION 3.5) diff --git a/lib/ArduinoJson/extras/ci/espidf/main/CMakeLists.txt b/lib/ArduinoJson/extras/ci/espidf/main/CMakeLists.txt index e32eb7c..bf22507 100644 --- a/lib/ArduinoJson/extras/ci/espidf/main/CMakeLists.txt +++ b/lib/ArduinoJson/extras/ci/espidf/main/CMakeLists.txt @@ -1,5 +1,5 @@ # ArduinoJson - https://arduinojson.org -# Copyright © 2014-2024, Benoit BLANCHON +# Copyright © 2014-2025, Benoit BLANCHON # MIT License idf_component_register( diff --git a/lib/ArduinoJson/extras/ci/espidf/main/main.cpp b/lib/ArduinoJson/extras/ci/espidf/main/main.cpp index f65aa39..436eb40 100644 --- a/lib/ArduinoJson/extras/ci/espidf/main/main.cpp +++ b/lib/ArduinoJson/extras/ci/espidf/main/main.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/fuzzing/CMakeLists.txt b/lib/ArduinoJson/extras/fuzzing/CMakeLists.txt index cc6e05d..42c9260 100644 --- a/lib/ArduinoJson/extras/fuzzing/CMakeLists.txt +++ b/lib/ArduinoJson/extras/fuzzing/CMakeLists.txt @@ -1,5 +1,5 @@ # ArduinoJson - https://arduinojson.org -# Copyright © 2014-2024, Benoit BLANCHON +# Copyright © 2014-2025, Benoit BLANCHON # MIT License set(CMAKE_CXX_STANDARD 11) diff --git a/lib/ArduinoJson/extras/fuzzing/reproducer.cpp b/lib/ArduinoJson/extras/fuzzing/reproducer.cpp index 1595a9a..beeb2df 100644 --- a/lib/ArduinoJson/extras/fuzzing/reproducer.cpp +++ b/lib/ArduinoJson/extras/fuzzing/reproducer.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License // This file is NOT use by Google's OSS fuzz diff --git a/lib/ArduinoJson/extras/scripts/wandbox/JsonGeneratorExample.cpp b/lib/ArduinoJson/extras/scripts/wandbox/JsonGeneratorExample.cpp index 313f93b..2e08b4c 100644 --- a/lib/ArduinoJson/extras/scripts/wandbox/JsonGeneratorExample.cpp +++ b/lib/ArduinoJson/extras/scripts/wandbox/JsonGeneratorExample.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License // // This example shows how to generate a JSON document with ArduinoJson. diff --git a/lib/ArduinoJson/extras/scripts/wandbox/JsonParserExample.cpp b/lib/ArduinoJson/extras/scripts/wandbox/JsonParserExample.cpp index cf653a4..1969cf2 100644 --- a/lib/ArduinoJson/extras/scripts/wandbox/JsonParserExample.cpp +++ b/lib/ArduinoJson/extras/scripts/wandbox/JsonParserExample.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License // // This example shows how to deserialize a JSON document with ArduinoJson. diff --git a/lib/ArduinoJson/extras/scripts/wandbox/MsgPackParserExample.cpp b/lib/ArduinoJson/extras/scripts/wandbox/MsgPackParserExample.cpp index cb797aa..81e6822 100644 --- a/lib/ArduinoJson/extras/scripts/wandbox/MsgPackParserExample.cpp +++ b/lib/ArduinoJson/extras/scripts/wandbox/MsgPackParserExample.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License // // This example shows how to generate a JSON document with ArduinoJson. diff --git a/lib/ArduinoJson/extras/tests/CMakeLists.txt b/lib/ArduinoJson/extras/tests/CMakeLists.txt index 212e31e..1b1f872 100644 --- a/lib/ArduinoJson/extras/tests/CMakeLists.txt +++ b/lib/ArduinoJson/extras/tests/CMakeLists.txt @@ -1,5 +1,5 @@ # ArduinoJson - https://arduinojson.org -# Copyright © 2014-2024, Benoit BLANCHON +# Copyright © 2014-2025, Benoit BLANCHON # MIT License set(CMAKE_CXX_STANDARD 11) diff --git a/lib/ArduinoJson/extras/tests/Cpp17/CMakeLists.txt b/lib/ArduinoJson/extras/tests/Cpp17/CMakeLists.txt index ff5cc0e..8c566de 100644 --- a/lib/ArduinoJson/extras/tests/Cpp17/CMakeLists.txt +++ b/lib/ArduinoJson/extras/tests/Cpp17/CMakeLists.txt @@ -1,5 +1,5 @@ # ArduinoJson - https://arduinojson.org -# Copyright © 2014-2024, Benoit BLANCHON +# Copyright © 2014-2025, Benoit BLANCHON # MIT License if(MSVC_VERSION LESS 1910) diff --git a/lib/ArduinoJson/extras/tests/Cpp17/string_view.cpp b/lib/ArduinoJson/extras/tests/Cpp17/string_view.cpp index 92e0a62..fb31084 100644 --- a/lib/ArduinoJson/extras/tests/Cpp17/string_view.cpp +++ b/lib/ArduinoJson/extras/tests/Cpp17/string_view.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License // we expect ArduinoJson.h to include diff --git a/lib/ArduinoJson/extras/tests/Cpp20/CMakeLists.txt b/lib/ArduinoJson/extras/tests/Cpp20/CMakeLists.txt index 637af5c..6346d4d 100644 --- a/lib/ArduinoJson/extras/tests/Cpp20/CMakeLists.txt +++ b/lib/ArduinoJson/extras/tests/Cpp20/CMakeLists.txt @@ -1,5 +1,5 @@ # ArduinoJson - https://arduinojson.org -# Copyright © 2014-2024, Benoit BLANCHON +# Copyright © 2014-2025, Benoit BLANCHON # MIT License if(MSVC_VERSION LESS 1910) diff --git a/lib/ArduinoJson/extras/tests/Deprecated/BasicJsonDocument.cpp b/lib/ArduinoJson/extras/tests/Deprecated/BasicJsonDocument.cpp index 0b69aee..a350977 100644 --- a/lib/ArduinoJson/extras/tests/Deprecated/BasicJsonDocument.cpp +++ b/lib/ArduinoJson/extras/tests/Deprecated/BasicJsonDocument.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include @@ -46,7 +46,7 @@ TEST_CASE("BasicJsonDocument") { deserializeJson(doc, "{\"hello\":\"world\"}"); REQUIRE(doc.as() == "{\"hello\":\"world\"}"); doc.clear(); - REQUIRE(allocatorLog == "ARAARDDD"); + REQUIRE(allocatorLog == "AARARDDD"); } SECTION("copy") { diff --git a/lib/ArduinoJson/extras/tests/Deprecated/CMakeLists.txt b/lib/ArduinoJson/extras/tests/Deprecated/CMakeLists.txt index c69fc44..bcf33e1 100644 --- a/lib/ArduinoJson/extras/tests/Deprecated/CMakeLists.txt +++ b/lib/ArduinoJson/extras/tests/Deprecated/CMakeLists.txt @@ -1,5 +1,5 @@ # ArduinoJson - https://arduinojson.org -# Copyright © 2014-2024, Benoit BLANCHON +# Copyright © 2014-2025, Benoit BLANCHON # MIT License if(CMAKE_CXX_COMPILER_ID MATCHES "(GNU|Clang)") diff --git a/lib/ArduinoJson/extras/tests/Deprecated/DynamicJsonDocument.cpp b/lib/ArduinoJson/extras/tests/Deprecated/DynamicJsonDocument.cpp index df9634b..7c6d44b 100644 --- a/lib/ArduinoJson/extras/tests/Deprecated/DynamicJsonDocument.cpp +++ b/lib/ArduinoJson/extras/tests/Deprecated/DynamicJsonDocument.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/Deprecated/StaticJsonDocument.cpp b/lib/ArduinoJson/extras/tests/Deprecated/StaticJsonDocument.cpp index 60ca6f2..39a363b 100644 --- a/lib/ArduinoJson/extras/tests/Deprecated/StaticJsonDocument.cpp +++ b/lib/ArduinoJson/extras/tests/Deprecated/StaticJsonDocument.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/Deprecated/add.cpp b/lib/ArduinoJson/extras/tests/Deprecated/add.cpp index de961d1..586e22b 100644 --- a/lib/ArduinoJson/extras/tests/Deprecated/add.cpp +++ b/lib/ArduinoJson/extras/tests/Deprecated/add.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/Deprecated/containsKey.cpp b/lib/ArduinoJson/extras/tests/Deprecated/containsKey.cpp index 846e98f..d001d40 100644 --- a/lib/ArduinoJson/extras/tests/Deprecated/containsKey.cpp +++ b/lib/ArduinoJson/extras/tests/Deprecated/containsKey.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/Deprecated/createNestedArray.cpp b/lib/ArduinoJson/extras/tests/Deprecated/createNestedArray.cpp index 6efbd88..858c022 100644 --- a/lib/ArduinoJson/extras/tests/Deprecated/createNestedArray.cpp +++ b/lib/ArduinoJson/extras/tests/Deprecated/createNestedArray.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/Deprecated/createNestedObject.cpp b/lib/ArduinoJson/extras/tests/Deprecated/createNestedObject.cpp index 8b73c8b..c035eb8 100644 --- a/lib/ArduinoJson/extras/tests/Deprecated/createNestedObject.cpp +++ b/lib/ArduinoJson/extras/tests/Deprecated/createNestedObject.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/Deprecated/macros.cpp b/lib/ArduinoJson/extras/tests/Deprecated/macros.cpp index 36610c7..2e73d5b 100644 --- a/lib/ArduinoJson/extras/tests/Deprecated/macros.cpp +++ b/lib/ArduinoJson/extras/tests/Deprecated/macros.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/Deprecated/memoryUsage.cpp b/lib/ArduinoJson/extras/tests/Deprecated/memoryUsage.cpp index 00b5bbb..89258f0 100644 --- a/lib/ArduinoJson/extras/tests/Deprecated/memoryUsage.cpp +++ b/lib/ArduinoJson/extras/tests/Deprecated/memoryUsage.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/Deprecated/shallowCopy.cpp b/lib/ArduinoJson/extras/tests/Deprecated/shallowCopy.cpp index ab5d6c4..1f0d12e 100644 --- a/lib/ArduinoJson/extras/tests/Deprecated/shallowCopy.cpp +++ b/lib/ArduinoJson/extras/tests/Deprecated/shallowCopy.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/FailingBuilds/CMakeLists.txt b/lib/ArduinoJson/extras/tests/FailingBuilds/CMakeLists.txt index ebe15f8..08dbe52 100644 --- a/lib/ArduinoJson/extras/tests/FailingBuilds/CMakeLists.txt +++ b/lib/ArduinoJson/extras/tests/FailingBuilds/CMakeLists.txt @@ -1,5 +1,5 @@ # ArduinoJson - https://arduinojson.org -# Copyright © 2014-2024, Benoit BLANCHON +# Copyright © 2014-2025, Benoit BLANCHON # MIT License macro(add_failing_build source_file) diff --git a/lib/ArduinoJson/extras/tests/FailingBuilds/Issue978.cpp b/lib/ArduinoJson/extras/tests/FailingBuilds/Issue978.cpp index 2ebbf94..3b9ec95 100644 --- a/lib/ArduinoJson/extras/tests/FailingBuilds/Issue978.cpp +++ b/lib/ArduinoJson/extras/tests/FailingBuilds/Issue978.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/FailingBuilds/assign_char.cpp b/lib/ArduinoJson/extras/tests/FailingBuilds/assign_char.cpp index b565376..888d23c 100644 --- a/lib/ArduinoJson/extras/tests/FailingBuilds/assign_char.cpp +++ b/lib/ArduinoJson/extras/tests/FailingBuilds/assign_char.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/FailingBuilds/deserialize_object.cpp b/lib/ArduinoJson/extras/tests/FailingBuilds/deserialize_object.cpp index 04845cd..b9313ed 100644 --- a/lib/ArduinoJson/extras/tests/FailingBuilds/deserialize_object.cpp +++ b/lib/ArduinoJson/extras/tests/FailingBuilds/deserialize_object.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/FailingBuilds/read_long_long.cpp b/lib/ArduinoJson/extras/tests/FailingBuilds/read_long_long.cpp index 7577698..daf1f40 100644 --- a/lib/ArduinoJson/extras/tests/FailingBuilds/read_long_long.cpp +++ b/lib/ArduinoJson/extras/tests/FailingBuilds/read_long_long.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #define ARDUINOJSON_USE_LONG_LONG 0 diff --git a/lib/ArduinoJson/extras/tests/FailingBuilds/variant_as_char.cpp b/lib/ArduinoJson/extras/tests/FailingBuilds/variant_as_char.cpp index 37685a6..b1e86ee 100644 --- a/lib/ArduinoJson/extras/tests/FailingBuilds/variant_as_char.cpp +++ b/lib/ArduinoJson/extras/tests/FailingBuilds/variant_as_char.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/FailingBuilds/write_long_long.cpp b/lib/ArduinoJson/extras/tests/FailingBuilds/write_long_long.cpp index a8d1460..4aee656 100644 --- a/lib/ArduinoJson/extras/tests/FailingBuilds/write_long_long.cpp +++ b/lib/ArduinoJson/extras/tests/FailingBuilds/write_long_long.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #define ARDUINOJSON_USE_LONG_LONG 0 diff --git a/lib/ArduinoJson/extras/tests/Helpers/Allocators.hpp b/lib/ArduinoJson/extras/tests/Helpers/Allocators.hpp index a551c31..17e05ca 100644 --- a/lib/ArduinoJson/extras/tests/Helpers/Allocators.hpp +++ b/lib/ArduinoJson/extras/tests/Helpers/Allocators.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/extras/tests/Helpers/Arduino.h b/lib/ArduinoJson/extras/tests/Helpers/Arduino.h index 4b8c27c..d12f872 100644 --- a/lib/ArduinoJson/extras/tests/Helpers/Arduino.h +++ b/lib/ArduinoJson/extras/tests/Helpers/Arduino.h @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/extras/tests/Helpers/CustomReader.hpp b/lib/ArduinoJson/extras/tests/Helpers/CustomReader.hpp index 66350a7..76a5138 100644 --- a/lib/ArduinoJson/extras/tests/Helpers/CustomReader.hpp +++ b/lib/ArduinoJson/extras/tests/Helpers/CustomReader.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/extras/tests/Helpers/Literals.hpp b/lib/ArduinoJson/extras/tests/Helpers/Literals.hpp index 59164cf..07c079d 100644 --- a/lib/ArduinoJson/extras/tests/Helpers/Literals.hpp +++ b/lib/ArduinoJson/extras/tests/Helpers/Literals.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/extras/tests/Helpers/api/Print.h b/lib/ArduinoJson/extras/tests/Helpers/api/Print.h index c9ec191..cdf05bb 100644 --- a/lib/ArduinoJson/extras/tests/Helpers/api/Print.h +++ b/lib/ArduinoJson/extras/tests/Helpers/api/Print.h @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once @@ -13,21 +13,21 @@ class Print { virtual ~Print() {} virtual size_t write(uint8_t) = 0; - virtual size_t write(const uint8_t *buffer, size_t size) = 0; + virtual size_t write(const uint8_t* buffer, size_t size) = 0; - size_t write(const char *str) { + size_t write(const char* str) { if (!str) return 0; - return write(reinterpret_cast(str), strlen(str)); + return write(reinterpret_cast(str), strlen(str)); } - size_t write(const char *buffer, size_t size) { - return write(reinterpret_cast(buffer), size); + size_t write(const char* buffer, size_t size) { + return write(reinterpret_cast(buffer), size); } }; class Printable { public: virtual ~Printable() {} - virtual size_t printTo(Print &p) const = 0; + virtual size_t printTo(Print& p) const = 0; }; diff --git a/lib/ArduinoJson/extras/tests/Helpers/api/Stream.h b/lib/ArduinoJson/extras/tests/Helpers/api/Stream.h index 2cd4651..64b9eaf 100644 --- a/lib/ArduinoJson/extras/tests/Helpers/api/Stream.h +++ b/lib/ArduinoJson/extras/tests/Helpers/api/Stream.h @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once @@ -10,5 +10,5 @@ class Stream // : public Print public: virtual ~Stream() {} virtual int read() = 0; - virtual size_t readBytes(char *buffer, size_t length) = 0; + virtual size_t readBytes(char* buffer, size_t length) = 0; }; diff --git a/lib/ArduinoJson/extras/tests/Helpers/api/String.h b/lib/ArduinoJson/extras/tests/Helpers/api/String.h index 2e8fdfe..1841610 100644 --- a/lib/ArduinoJson/extras/tests/Helpers/api/String.h +++ b/lib/ArduinoJson/extras/tests/Helpers/api/String.h @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/extras/tests/Helpers/avr/pgmspace.h b/lib/ArduinoJson/extras/tests/Helpers/avr/pgmspace.h index 2cdd182..8cbf44e 100644 --- a/lib/ArduinoJson/extras/tests/Helpers/avr/pgmspace.h +++ b/lib/ArduinoJson/extras/tests/Helpers/avr/pgmspace.h @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/extras/tests/IntegrationTests/CMakeLists.txt b/lib/ArduinoJson/extras/tests/IntegrationTests/CMakeLists.txt index adc0ebf..d3e4004 100644 --- a/lib/ArduinoJson/extras/tests/IntegrationTests/CMakeLists.txt +++ b/lib/ArduinoJson/extras/tests/IntegrationTests/CMakeLists.txt @@ -1,5 +1,5 @@ # ArduinoJson - https://arduinojson.org -# Copyright © 2014-2024, Benoit BLANCHON +# Copyright © 2014-2025, Benoit BLANCHON # MIT License add_executable(IntegrationTests diff --git a/lib/ArduinoJson/extras/tests/IntegrationTests/gbathree.cpp b/lib/ArduinoJson/extras/tests/IntegrationTests/gbathree.cpp index db649aa..fead9ff 100644 --- a/lib/ArduinoJson/extras/tests/IntegrationTests/gbathree.cpp +++ b/lib/ArduinoJson/extras/tests/IntegrationTests/gbathree.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/IntegrationTests/issue772.cpp b/lib/ArduinoJson/extras/tests/IntegrationTests/issue772.cpp index 57e0b2c..e81cf40 100644 --- a/lib/ArduinoJson/extras/tests/IntegrationTests/issue772.cpp +++ b/lib/ArduinoJson/extras/tests/IntegrationTests/issue772.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/IntegrationTests/openweathermap.cpp b/lib/ArduinoJson/extras/tests/IntegrationTests/openweathermap.cpp index 2d55b54..34dbba2 100644 --- a/lib/ArduinoJson/extras/tests/IntegrationTests/openweathermap.cpp +++ b/lib/ArduinoJson/extras/tests/IntegrationTests/openweathermap.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/IntegrationTests/round_trip.cpp b/lib/ArduinoJson/extras/tests/IntegrationTests/round_trip.cpp index 4fd5d2d..54bd6f4 100644 --- a/lib/ArduinoJson/extras/tests/IntegrationTests/round_trip.cpp +++ b/lib/ArduinoJson/extras/tests/IntegrationTests/round_trip.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/JsonArray/CMakeLists.txt b/lib/ArduinoJson/extras/tests/JsonArray/CMakeLists.txt index 2ee1a34..0b8a562 100644 --- a/lib/ArduinoJson/extras/tests/JsonArray/CMakeLists.txt +++ b/lib/ArduinoJson/extras/tests/JsonArray/CMakeLists.txt @@ -1,5 +1,5 @@ # ArduinoJson - https://arduinojson.org -# Copyright © 2014-2024, Benoit BLANCHON +# Copyright © 2014-2025, Benoit BLANCHON # MIT License add_executable(JsonArrayTests diff --git a/lib/ArduinoJson/extras/tests/JsonArray/add.cpp b/lib/ArduinoJson/extras/tests/JsonArray/add.cpp index f1ca5f2..0983e3b 100644 --- a/lib/ArduinoJson/extras/tests/JsonArray/add.cpp +++ b/lib/ArduinoJson/extras/tests/JsonArray/add.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/JsonArray/clear.cpp b/lib/ArduinoJson/extras/tests/JsonArray/clear.cpp index 8ac4548..069376d 100644 --- a/lib/ArduinoJson/extras/tests/JsonArray/clear.cpp +++ b/lib/ArduinoJson/extras/tests/JsonArray/clear.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/JsonArray/compare.cpp b/lib/ArduinoJson/extras/tests/JsonArray/compare.cpp index b18bcda..23f2ea9 100644 --- a/lib/ArduinoJson/extras/tests/JsonArray/compare.cpp +++ b/lib/ArduinoJson/extras/tests/JsonArray/compare.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/JsonArray/copyArray.cpp b/lib/ArduinoJson/extras/tests/JsonArray/copyArray.cpp index a82a6f8..dd31cf6 100644 --- a/lib/ArduinoJson/extras/tests/JsonArray/copyArray.cpp +++ b/lib/ArduinoJson/extras/tests/JsonArray/copyArray.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/JsonArray/equals.cpp b/lib/ArduinoJson/extras/tests/JsonArray/equals.cpp index 4f5af46..241aa71 100644 --- a/lib/ArduinoJson/extras/tests/JsonArray/equals.cpp +++ b/lib/ArduinoJson/extras/tests/JsonArray/equals.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/JsonArray/isNull.cpp b/lib/ArduinoJson/extras/tests/JsonArray/isNull.cpp index dc22f4b..77f1512 100644 --- a/lib/ArduinoJson/extras/tests/JsonArray/isNull.cpp +++ b/lib/ArduinoJson/extras/tests/JsonArray/isNull.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/JsonArray/iterator.cpp b/lib/ArduinoJson/extras/tests/JsonArray/iterator.cpp index 8158975..f6bb3ef 100644 --- a/lib/ArduinoJson/extras/tests/JsonArray/iterator.cpp +++ b/lib/ArduinoJson/extras/tests/JsonArray/iterator.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/JsonArray/nesting.cpp b/lib/ArduinoJson/extras/tests/JsonArray/nesting.cpp index a49b01c..434c418 100644 --- a/lib/ArduinoJson/extras/tests/JsonArray/nesting.cpp +++ b/lib/ArduinoJson/extras/tests/JsonArray/nesting.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/JsonArray/remove.cpp b/lib/ArduinoJson/extras/tests/JsonArray/remove.cpp index 82e3bab..8691171 100644 --- a/lib/ArduinoJson/extras/tests/JsonArray/remove.cpp +++ b/lib/ArduinoJson/extras/tests/JsonArray/remove.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/JsonArray/size.cpp b/lib/ArduinoJson/extras/tests/JsonArray/size.cpp index 599b37c..63bf55d 100644 --- a/lib/ArduinoJson/extras/tests/JsonArray/size.cpp +++ b/lib/ArduinoJson/extras/tests/JsonArray/size.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/JsonArray/subscript.cpp b/lib/ArduinoJson/extras/tests/JsonArray/subscript.cpp index 40b1736..fa0400c 100644 --- a/lib/ArduinoJson/extras/tests/JsonArray/subscript.cpp +++ b/lib/ArduinoJson/extras/tests/JsonArray/subscript.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/JsonArray/unbound.cpp b/lib/ArduinoJson/extras/tests/JsonArray/unbound.cpp index 21d4ebf..ba80018 100644 --- a/lib/ArduinoJson/extras/tests/JsonArray/unbound.cpp +++ b/lib/ArduinoJson/extras/tests/JsonArray/unbound.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/JsonArrayConst/CMakeLists.txt b/lib/ArduinoJson/extras/tests/JsonArrayConst/CMakeLists.txt index 8608a89..4d69c71 100644 --- a/lib/ArduinoJson/extras/tests/JsonArrayConst/CMakeLists.txt +++ b/lib/ArduinoJson/extras/tests/JsonArrayConst/CMakeLists.txt @@ -1,5 +1,5 @@ # ArduinoJson - https://arduinojson.org -# Copyright © 2014-2024, Benoit BLANCHON +# Copyright © 2014-2025, Benoit BLANCHON # MIT License add_executable(JsonArrayConstTests diff --git a/lib/ArduinoJson/extras/tests/JsonArrayConst/equals.cpp b/lib/ArduinoJson/extras/tests/JsonArrayConst/equals.cpp index ba60d38..de939cc 100644 --- a/lib/ArduinoJson/extras/tests/JsonArrayConst/equals.cpp +++ b/lib/ArduinoJson/extras/tests/JsonArrayConst/equals.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/JsonArrayConst/isNull.cpp b/lib/ArduinoJson/extras/tests/JsonArrayConst/isNull.cpp index 26b64ae..d443a73 100644 --- a/lib/ArduinoJson/extras/tests/JsonArrayConst/isNull.cpp +++ b/lib/ArduinoJson/extras/tests/JsonArrayConst/isNull.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/JsonArrayConst/iterator.cpp b/lib/ArduinoJson/extras/tests/JsonArrayConst/iterator.cpp index 5eeb56a..0907af7 100644 --- a/lib/ArduinoJson/extras/tests/JsonArrayConst/iterator.cpp +++ b/lib/ArduinoJson/extras/tests/JsonArrayConst/iterator.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/JsonArrayConst/nesting.cpp b/lib/ArduinoJson/extras/tests/JsonArrayConst/nesting.cpp index 860754a..547d5d4 100644 --- a/lib/ArduinoJson/extras/tests/JsonArrayConst/nesting.cpp +++ b/lib/ArduinoJson/extras/tests/JsonArrayConst/nesting.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/JsonArrayConst/size.cpp b/lib/ArduinoJson/extras/tests/JsonArrayConst/size.cpp index a59551a..4bf000f 100644 --- a/lib/ArduinoJson/extras/tests/JsonArrayConst/size.cpp +++ b/lib/ArduinoJson/extras/tests/JsonArrayConst/size.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/JsonArrayConst/subscript.cpp b/lib/ArduinoJson/extras/tests/JsonArrayConst/subscript.cpp index 28512b2..907cf31 100644 --- a/lib/ArduinoJson/extras/tests/JsonArrayConst/subscript.cpp +++ b/lib/ArduinoJson/extras/tests/JsonArrayConst/subscript.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/JsonDeserializer/CMakeLists.txt b/lib/ArduinoJson/extras/tests/JsonDeserializer/CMakeLists.txt index a503f45..6faaaa8 100644 --- a/lib/ArduinoJson/extras/tests/JsonDeserializer/CMakeLists.txt +++ b/lib/ArduinoJson/extras/tests/JsonDeserializer/CMakeLists.txt @@ -1,5 +1,5 @@ # ArduinoJson - https://arduinojson.org -# Copyright © 2014-2024, Benoit BLANCHON +# Copyright © 2014-2025, Benoit BLANCHON # MIT License add_executable(JsonDeserializerTests diff --git a/lib/ArduinoJson/extras/tests/JsonDeserializer/DeserializationError.cpp b/lib/ArduinoJson/extras/tests/JsonDeserializer/DeserializationError.cpp index 17c8c40..edfcd3a 100644 --- a/lib/ArduinoJson/extras/tests/JsonDeserializer/DeserializationError.cpp +++ b/lib/ArduinoJson/extras/tests/JsonDeserializer/DeserializationError.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/JsonDeserializer/array.cpp b/lib/ArduinoJson/extras/tests/JsonDeserializer/array.cpp index f61083d..e6fb18d 100644 --- a/lib/ArduinoJson/extras/tests/JsonDeserializer/array.cpp +++ b/lib/ArduinoJson/extras/tests/JsonDeserializer/array.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/JsonDeserializer/destination_types.cpp b/lib/ArduinoJson/extras/tests/JsonDeserializer/destination_types.cpp index dc5c012..0f96b23 100644 --- a/lib/ArduinoJson/extras/tests/JsonDeserializer/destination_types.cpp +++ b/lib/ArduinoJson/extras/tests/JsonDeserializer/destination_types.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/JsonDeserializer/errors.cpp b/lib/ArduinoJson/extras/tests/JsonDeserializer/errors.cpp index 0c2444e..35d3ca3 100644 --- a/lib/ArduinoJson/extras/tests/JsonDeserializer/errors.cpp +++ b/lib/ArduinoJson/extras/tests/JsonDeserializer/errors.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #define ARDUINOJSON_DECODE_UNICODE 1 diff --git a/lib/ArduinoJson/extras/tests/JsonDeserializer/filter.cpp b/lib/ArduinoJson/extras/tests/JsonDeserializer/filter.cpp index 894df75..4f9d9b9 100644 --- a/lib/ArduinoJson/extras/tests/JsonDeserializer/filter.cpp +++ b/lib/ArduinoJson/extras/tests/JsonDeserializer/filter.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #define ARDUINOJSON_ENABLE_COMMENTS 1 diff --git a/lib/ArduinoJson/extras/tests/JsonDeserializer/input_types.cpp b/lib/ArduinoJson/extras/tests/JsonDeserializer/input_types.cpp index a8a9e56..e750fd6 100644 --- a/lib/ArduinoJson/extras/tests/JsonDeserializer/input_types.cpp +++ b/lib/ArduinoJson/extras/tests/JsonDeserializer/input_types.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include @@ -26,8 +26,8 @@ TEST_CASE("deserializeJson(char*)") { REQUIRE(spy.log() == AllocatorLog{ Allocate(sizeofStringBuffer()), - Reallocate(sizeofStringBuffer(), sizeofString("hello")), Allocate(sizeofPool()), + Reallocate(sizeofStringBuffer(), sizeofString("hello")), Allocate(sizeofStringBuffer()), Reallocate(sizeofStringBuffer(), sizeofString("world")), Reallocate(sizeofPool(), sizeofObject(1)), diff --git a/lib/ArduinoJson/extras/tests/JsonDeserializer/misc.cpp b/lib/ArduinoJson/extras/tests/JsonDeserializer/misc.cpp index cc5d10f..c13956b 100644 --- a/lib/ArduinoJson/extras/tests/JsonDeserializer/misc.cpp +++ b/lib/ArduinoJson/extras/tests/JsonDeserializer/misc.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/JsonDeserializer/nestingLimit.cpp b/lib/ArduinoJson/extras/tests/JsonDeserializer/nestingLimit.cpp index cd11841..07f8f19 100644 --- a/lib/ArduinoJson/extras/tests/JsonDeserializer/nestingLimit.cpp +++ b/lib/ArduinoJson/extras/tests/JsonDeserializer/nestingLimit.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/JsonDeserializer/number.cpp b/lib/ArduinoJson/extras/tests/JsonDeserializer/number.cpp index 5359573..a74e50b 100644 --- a/lib/ArduinoJson/extras/tests/JsonDeserializer/number.cpp +++ b/lib/ArduinoJson/extras/tests/JsonDeserializer/number.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #define ARDUINOJSON_USE_LONG_LONG 0 diff --git a/lib/ArduinoJson/extras/tests/JsonDeserializer/object.cpp b/lib/ArduinoJson/extras/tests/JsonDeserializer/object.cpp index 9f0aecb..34b357a 100644 --- a/lib/ArduinoJson/extras/tests/JsonDeserializer/object.cpp +++ b/lib/ArduinoJson/extras/tests/JsonDeserializer/object.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include @@ -292,22 +292,23 @@ TEST_CASE("deserialize JSON object") { } SECTION("Repeated key") { - DeserializationError err = deserializeJson(doc, "{a:{b:{c:1}},a:2}"); + DeserializationError err = + deserializeJson(doc, "{alfa:{bravo:{charlie:1}},alfa:2}"); REQUIRE(err == DeserializationError::Ok); - REQUIRE(doc.as() == "{\"a\":2}"); + REQUIRE(doc.as() == "{\"alfa\":2}"); REQUIRE(spy.log() == AllocatorLog{ Allocate(sizeofStringBuffer()), - Reallocate(sizeofStringBuffer(), sizeofString("a")), Allocate(sizeofPool()), + Reallocate(sizeofStringBuffer(), sizeofString("alfa")), Allocate(sizeofStringBuffer()), - Reallocate(sizeofStringBuffer(), sizeofString("b")), + Reallocate(sizeofStringBuffer(), sizeofString("bravo")), Allocate(sizeofStringBuffer()), - Reallocate(sizeofStringBuffer(), sizeofString("c")), + Reallocate(sizeofStringBuffer(), sizeofString("charlie")), Allocate(sizeofStringBuffer()), - Deallocate(sizeofString("b")), - Deallocate(sizeofString("c")), + Deallocate(sizeofString("bravo")), + Deallocate(sizeofString("charlie")), Deallocate(sizeofStringBuffer()), Reallocate(sizeofPool(), sizeofObject(2) + sizeofObject(1)), }); @@ -378,7 +379,7 @@ TEST_CASE("deserialize JSON object under memory constraints") { } SECTION("pool allocation fails") { - timebomb.setCountdown(2); + timebomb.setCountdown(1); char input[] = "{\"a\":1}"; DeserializationError err = deserializeJson(doc, input); @@ -389,11 +390,11 @@ TEST_CASE("deserialize JSON object under memory constraints") { SECTION("string allocation fails") { timebomb.setCountdown(3); - char input[] = "{\"a\":\"b\"}"; + char input[] = "{\"alfa\":\"bravo\"}"; DeserializationError err = deserializeJson(doc, input); REQUIRE(err == DeserializationError::NoMemory); - REQUIRE(doc.as() == "{\"a\":null}"); + REQUIRE(doc.as() == "{\"alfa\":null}"); } } diff --git a/lib/ArduinoJson/extras/tests/JsonDeserializer/string.cpp b/lib/ArduinoJson/extras/tests/JsonDeserializer/string.cpp index a760ae6..5ad8678 100644 --- a/lib/ArduinoJson/extras/tests/JsonDeserializer/string.cpp +++ b/lib/ArduinoJson/extras/tests/JsonDeserializer/string.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #define ARDUINOJSON_DECODE_UNICODE 1 @@ -133,8 +133,8 @@ TEST_CASE("Allocation of the key fails") { REQUIRE(spy.log() == AllocatorLog{ Allocate(sizeofStringBuffer()), - Reallocate(sizeofStringBuffer(), sizeofString("hello")), Allocate(sizeofPool()), + Reallocate(sizeofStringBuffer(), sizeofString("hello")), AllocateFail(sizeofStringBuffer()), ReallocateFail(sizeofPool(), sizeofObject(1)), }); @@ -155,8 +155,8 @@ TEST_CASE("Allocation of the key fails") { REQUIRE(spy.log() == AllocatorLog{ Allocate(sizeofStringBuffer()), - Reallocate(sizeofStringBuffer(), sizeofString("hello")), Allocate(sizeofPool()), + Reallocate(sizeofStringBuffer(), sizeofString("hello")), AllocateFail(sizeofStringBuffer()), ReallocateFail(sizeofPool(), sizeofObject(1)), }); diff --git a/lib/ArduinoJson/extras/tests/JsonDocument/CMakeLists.txt b/lib/ArduinoJson/extras/tests/JsonDocument/CMakeLists.txt index e85db02..dc8036a 100644 --- a/lib/ArduinoJson/extras/tests/JsonDocument/CMakeLists.txt +++ b/lib/ArduinoJson/extras/tests/JsonDocument/CMakeLists.txt @@ -1,5 +1,5 @@ # ArduinoJson - https://arduinojson.org -# Copyright © 2014-2024, Benoit BLANCHON +# Copyright © 2014-2025, Benoit BLANCHON # MIT License add_executable(JsonDocumentTests diff --git a/lib/ArduinoJson/extras/tests/JsonDocument/ElementProxy.cpp b/lib/ArduinoJson/extras/tests/JsonDocument/ElementProxy.cpp index 387dc88..9cf8855 100644 --- a/lib/ArduinoJson/extras/tests/JsonDocument/ElementProxy.cpp +++ b/lib/ArduinoJson/extras/tests/JsonDocument/ElementProxy.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/JsonDocument/MemberProxy.cpp b/lib/ArduinoJson/extras/tests/JsonDocument/MemberProxy.cpp index 4eb7468..c42edcc 100644 --- a/lib/ArduinoJson/extras/tests/JsonDocument/MemberProxy.cpp +++ b/lib/ArduinoJson/extras/tests/JsonDocument/MemberProxy.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #define ARDUINOJSON_ENABLE_ARDUINO_STRING 1 diff --git a/lib/ArduinoJson/extras/tests/JsonDocument/add.cpp b/lib/ArduinoJson/extras/tests/JsonDocument/add.cpp index 8a1c48e..da898e6 100644 --- a/lib/ArduinoJson/extras/tests/JsonDocument/add.cpp +++ b/lib/ArduinoJson/extras/tests/JsonDocument/add.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #define ARDUINOJSON_ENABLE_ARDUINO_STRING 1 diff --git a/lib/ArduinoJson/extras/tests/JsonDocument/assignment.cpp b/lib/ArduinoJson/extras/tests/JsonDocument/assignment.cpp index 58a8391..4e59584 100644 --- a/lib/ArduinoJson/extras/tests/JsonDocument/assignment.cpp +++ b/lib/ArduinoJson/extras/tests/JsonDocument/assignment.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/JsonDocument/cast.cpp b/lib/ArduinoJson/extras/tests/JsonDocument/cast.cpp index 05c9ee7..0bb9caa 100644 --- a/lib/ArduinoJson/extras/tests/JsonDocument/cast.cpp +++ b/lib/ArduinoJson/extras/tests/JsonDocument/cast.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/JsonDocument/clear.cpp b/lib/ArduinoJson/extras/tests/JsonDocument/clear.cpp index 3b9f6ee..98d2499 100644 --- a/lib/ArduinoJson/extras/tests/JsonDocument/clear.cpp +++ b/lib/ArduinoJson/extras/tests/JsonDocument/clear.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/JsonDocument/compare.cpp b/lib/ArduinoJson/extras/tests/JsonDocument/compare.cpp index a1b8ef2..da7af58 100644 --- a/lib/ArduinoJson/extras/tests/JsonDocument/compare.cpp +++ b/lib/ArduinoJson/extras/tests/JsonDocument/compare.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/JsonDocument/constructor.cpp b/lib/ArduinoJson/extras/tests/JsonDocument/constructor.cpp index 239b3bf..1eaec20 100644 --- a/lib/ArduinoJson/extras/tests/JsonDocument/constructor.cpp +++ b/lib/ArduinoJson/extras/tests/JsonDocument/constructor.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/JsonDocument/isNull.cpp b/lib/ArduinoJson/extras/tests/JsonDocument/isNull.cpp index 219c306..d030842 100644 --- a/lib/ArduinoJson/extras/tests/JsonDocument/isNull.cpp +++ b/lib/ArduinoJson/extras/tests/JsonDocument/isNull.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/JsonDocument/nesting.cpp b/lib/ArduinoJson/extras/tests/JsonDocument/nesting.cpp index 4f4a3a5..2fb86e1 100644 --- a/lib/ArduinoJson/extras/tests/JsonDocument/nesting.cpp +++ b/lib/ArduinoJson/extras/tests/JsonDocument/nesting.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/JsonDocument/overflowed.cpp b/lib/ArduinoJson/extras/tests/JsonDocument/overflowed.cpp index 9dfa83f..44003eb 100644 --- a/lib/ArduinoJson/extras/tests/JsonDocument/overflowed.cpp +++ b/lib/ArduinoJson/extras/tests/JsonDocument/overflowed.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/JsonDocument/remove.cpp b/lib/ArduinoJson/extras/tests/JsonDocument/remove.cpp index 1656a4d..f017bb9 100644 --- a/lib/ArduinoJson/extras/tests/JsonDocument/remove.cpp +++ b/lib/ArduinoJson/extras/tests/JsonDocument/remove.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/JsonDocument/set.cpp b/lib/ArduinoJson/extras/tests/JsonDocument/set.cpp index 1205acf..88c33bb 100644 --- a/lib/ArduinoJson/extras/tests/JsonDocument/set.cpp +++ b/lib/ArduinoJson/extras/tests/JsonDocument/set.cpp @@ -87,6 +87,13 @@ TEST_CASE("JsonDocument::set()") { }); } + SECTION("Flash tiny string") { // issue #2170 + doc.set(F("abc")); + + REQUIRE(doc.as() == "abc"_s); + REQUIRE(spy.log() == AllocatorLog{}); + } + #ifdef HAS_VARIABLE_LENGTH_ARRAY SECTION("VLA") { size_t i = 16; diff --git a/lib/ArduinoJson/extras/tests/JsonDocument/shrinkToFit.cpp b/lib/ArduinoJson/extras/tests/JsonDocument/shrinkToFit.cpp index 91b9d91..148b552 100644 --- a/lib/ArduinoJson/extras/tests/JsonDocument/shrinkToFit.cpp +++ b/lib/ArduinoJson/extras/tests/JsonDocument/shrinkToFit.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/JsonDocument/size.cpp b/lib/ArduinoJson/extras/tests/JsonDocument/size.cpp index 53af226..fad6584 100644 --- a/lib/ArduinoJson/extras/tests/JsonDocument/size.cpp +++ b/lib/ArduinoJson/extras/tests/JsonDocument/size.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/JsonDocument/subscript.cpp b/lib/ArduinoJson/extras/tests/JsonDocument/subscript.cpp index 2150d15..17bdcc2 100644 --- a/lib/ArduinoJson/extras/tests/JsonDocument/subscript.cpp +++ b/lib/ArduinoJson/extras/tests/JsonDocument/subscript.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/JsonObject/CMakeLists.txt b/lib/ArduinoJson/extras/tests/JsonObject/CMakeLists.txt index 60ba1fe..3f44d98 100644 --- a/lib/ArduinoJson/extras/tests/JsonObject/CMakeLists.txt +++ b/lib/ArduinoJson/extras/tests/JsonObject/CMakeLists.txt @@ -1,5 +1,5 @@ # ArduinoJson - https://arduinojson.org -# Copyright © 2014-2024, Benoit BLANCHON +# Copyright © 2014-2025, Benoit BLANCHON # MIT License add_executable(JsonObjectTests diff --git a/lib/ArduinoJson/extras/tests/JsonObject/clear.cpp b/lib/ArduinoJson/extras/tests/JsonObject/clear.cpp index 6673d1c..f6f8a22 100644 --- a/lib/ArduinoJson/extras/tests/JsonObject/clear.cpp +++ b/lib/ArduinoJson/extras/tests/JsonObject/clear.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/JsonObject/compare.cpp b/lib/ArduinoJson/extras/tests/JsonObject/compare.cpp index 0c3ff7e..faa0cbd 100644 --- a/lib/ArduinoJson/extras/tests/JsonObject/compare.cpp +++ b/lib/ArduinoJson/extras/tests/JsonObject/compare.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/JsonObject/equals.cpp b/lib/ArduinoJson/extras/tests/JsonObject/equals.cpp index 0ec4673..4a594a7 100644 --- a/lib/ArduinoJson/extras/tests/JsonObject/equals.cpp +++ b/lib/ArduinoJson/extras/tests/JsonObject/equals.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/JsonObject/isNull.cpp b/lib/ArduinoJson/extras/tests/JsonObject/isNull.cpp index 51f7880..8ddb51c 100644 --- a/lib/ArduinoJson/extras/tests/JsonObject/isNull.cpp +++ b/lib/ArduinoJson/extras/tests/JsonObject/isNull.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/JsonObject/iterator.cpp b/lib/ArduinoJson/extras/tests/JsonObject/iterator.cpp index 4918d27..e22d72a 100644 --- a/lib/ArduinoJson/extras/tests/JsonObject/iterator.cpp +++ b/lib/ArduinoJson/extras/tests/JsonObject/iterator.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/JsonObject/nesting.cpp b/lib/ArduinoJson/extras/tests/JsonObject/nesting.cpp index 39c26fa..a3fdaea 100644 --- a/lib/ArduinoJson/extras/tests/JsonObject/nesting.cpp +++ b/lib/ArduinoJson/extras/tests/JsonObject/nesting.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/JsonObject/remove.cpp b/lib/ArduinoJson/extras/tests/JsonObject/remove.cpp index 4c3e35d..052433d 100644 --- a/lib/ArduinoJson/extras/tests/JsonObject/remove.cpp +++ b/lib/ArduinoJson/extras/tests/JsonObject/remove.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/JsonObject/set.cpp b/lib/ArduinoJson/extras/tests/JsonObject/set.cpp index bad0674..e5c3044 100644 --- a/lib/ArduinoJson/extras/tests/JsonObject/set.cpp +++ b/lib/ArduinoJson/extras/tests/JsonObject/set.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include @@ -100,13 +100,13 @@ TEST_CASE("JsonObject::set()") { JsonDocument doc3(&timebomb); JsonObject obj3 = doc3.to(); - obj1["a"_s] = 1; - obj1["b"_s] = 2; + obj1["alpha"_s] = 1; + obj1["beta"_s] = 2; bool success = obj3.set(obj1); REQUIRE(success == false); - REQUIRE(doc3.as() == "{\"a\":1}"); + REQUIRE(doc3.as() == "{\"alpha\":1}"); } SECTION("copy fails in the middle of an array") { diff --git a/lib/ArduinoJson/extras/tests/JsonObject/size.cpp b/lib/ArduinoJson/extras/tests/JsonObject/size.cpp index 5f48645..5c5258e 100644 --- a/lib/ArduinoJson/extras/tests/JsonObject/size.cpp +++ b/lib/ArduinoJson/extras/tests/JsonObject/size.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/JsonObject/std_string.cpp b/lib/ArduinoJson/extras/tests/JsonObject/std_string.cpp index 85ca300..82b87b9 100644 --- a/lib/ArduinoJson/extras/tests/JsonObject/std_string.cpp +++ b/lib/ArduinoJson/extras/tests/JsonObject/std_string.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/JsonObject/subscript.cpp b/lib/ArduinoJson/extras/tests/JsonObject/subscript.cpp index 0acc01e..bdf900f 100644 --- a/lib/ArduinoJson/extras/tests/JsonObject/subscript.cpp +++ b/lib/ArduinoJson/extras/tests/JsonObject/subscript.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/JsonObject/unbound.cpp b/lib/ArduinoJson/extras/tests/JsonObject/unbound.cpp index cb2b687..0300502 100644 --- a/lib/ArduinoJson/extras/tests/JsonObject/unbound.cpp +++ b/lib/ArduinoJson/extras/tests/JsonObject/unbound.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/JsonObjectConst/CMakeLists.txt b/lib/ArduinoJson/extras/tests/JsonObjectConst/CMakeLists.txt index 447e239..9eb1144 100644 --- a/lib/ArduinoJson/extras/tests/JsonObjectConst/CMakeLists.txt +++ b/lib/ArduinoJson/extras/tests/JsonObjectConst/CMakeLists.txt @@ -1,5 +1,5 @@ # ArduinoJson - https://arduinojson.org -# Copyright © 2014-2024, Benoit BLANCHON +# Copyright © 2014-2025, Benoit BLANCHON # MIT License add_executable(JsonObjectConstTests diff --git a/lib/ArduinoJson/extras/tests/JsonObjectConst/equals.cpp b/lib/ArduinoJson/extras/tests/JsonObjectConst/equals.cpp index 0efa3cf..c1ad6ff 100644 --- a/lib/ArduinoJson/extras/tests/JsonObjectConst/equals.cpp +++ b/lib/ArduinoJson/extras/tests/JsonObjectConst/equals.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/JsonObjectConst/isNull.cpp b/lib/ArduinoJson/extras/tests/JsonObjectConst/isNull.cpp index c689cce..c88b9d7 100644 --- a/lib/ArduinoJson/extras/tests/JsonObjectConst/isNull.cpp +++ b/lib/ArduinoJson/extras/tests/JsonObjectConst/isNull.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/JsonObjectConst/iterator.cpp b/lib/ArduinoJson/extras/tests/JsonObjectConst/iterator.cpp index 0ad911e..3b474f4 100644 --- a/lib/ArduinoJson/extras/tests/JsonObjectConst/iterator.cpp +++ b/lib/ArduinoJson/extras/tests/JsonObjectConst/iterator.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/JsonObjectConst/nesting.cpp b/lib/ArduinoJson/extras/tests/JsonObjectConst/nesting.cpp index 7bddd8f..6d72cdf 100644 --- a/lib/ArduinoJson/extras/tests/JsonObjectConst/nesting.cpp +++ b/lib/ArduinoJson/extras/tests/JsonObjectConst/nesting.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/JsonObjectConst/size.cpp b/lib/ArduinoJson/extras/tests/JsonObjectConst/size.cpp index 25de11a..10e1e13 100644 --- a/lib/ArduinoJson/extras/tests/JsonObjectConst/size.cpp +++ b/lib/ArduinoJson/extras/tests/JsonObjectConst/size.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/JsonObjectConst/subscript.cpp b/lib/ArduinoJson/extras/tests/JsonObjectConst/subscript.cpp index 59714c0..d611b3c 100644 --- a/lib/ArduinoJson/extras/tests/JsonObjectConst/subscript.cpp +++ b/lib/ArduinoJson/extras/tests/JsonObjectConst/subscript.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/JsonSerializer/CMakeLists.txt b/lib/ArduinoJson/extras/tests/JsonSerializer/CMakeLists.txt index 8a6b19f..28ba51e 100644 --- a/lib/ArduinoJson/extras/tests/JsonSerializer/CMakeLists.txt +++ b/lib/ArduinoJson/extras/tests/JsonSerializer/CMakeLists.txt @@ -1,5 +1,5 @@ # ArduinoJson - https://arduinojson.org -# Copyright © 2014-2024, Benoit BLANCHON +# Copyright © 2014-2025, Benoit BLANCHON # MIT License add_executable(JsonSerializerTests diff --git a/lib/ArduinoJson/extras/tests/JsonSerializer/CustomWriter.cpp b/lib/ArduinoJson/extras/tests/JsonSerializer/CustomWriter.cpp index 002aa57..8e7f1de 100644 --- a/lib/ArduinoJson/extras/tests/JsonSerializer/CustomWriter.cpp +++ b/lib/ArduinoJson/extras/tests/JsonSerializer/CustomWriter.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/JsonSerializer/JsonArray.cpp b/lib/ArduinoJson/extras/tests/JsonSerializer/JsonArray.cpp index b4bf838..f33c152 100644 --- a/lib/ArduinoJson/extras/tests/JsonSerializer/JsonArray.cpp +++ b/lib/ArduinoJson/extras/tests/JsonSerializer/JsonArray.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/JsonSerializer/JsonArrayPretty.cpp b/lib/ArduinoJson/extras/tests/JsonSerializer/JsonArrayPretty.cpp index ede368c..7939bd9 100644 --- a/lib/ArduinoJson/extras/tests/JsonSerializer/JsonArrayPretty.cpp +++ b/lib/ArduinoJson/extras/tests/JsonSerializer/JsonArrayPretty.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/JsonSerializer/JsonObject.cpp b/lib/ArduinoJson/extras/tests/JsonSerializer/JsonObject.cpp index 7078886..c21d16d 100644 --- a/lib/ArduinoJson/extras/tests/JsonSerializer/JsonObject.cpp +++ b/lib/ArduinoJson/extras/tests/JsonSerializer/JsonObject.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/JsonSerializer/JsonObjectPretty.cpp b/lib/ArduinoJson/extras/tests/JsonSerializer/JsonObjectPretty.cpp index 01d7377..24e32fb 100644 --- a/lib/ArduinoJson/extras/tests/JsonSerializer/JsonObjectPretty.cpp +++ b/lib/ArduinoJson/extras/tests/JsonSerializer/JsonObjectPretty.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/JsonSerializer/JsonVariant.cpp b/lib/ArduinoJson/extras/tests/JsonSerializer/JsonVariant.cpp index 1ddaea6..dcb8aee 100644 --- a/lib/ArduinoJson/extras/tests/JsonSerializer/JsonVariant.cpp +++ b/lib/ArduinoJson/extras/tests/JsonSerializer/JsonVariant.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/JsonSerializer/std_stream.cpp b/lib/ArduinoJson/extras/tests/JsonSerializer/std_stream.cpp index 5fd89b9..28fd6f7 100644 --- a/lib/ArduinoJson/extras/tests/JsonSerializer/std_stream.cpp +++ b/lib/ArduinoJson/extras/tests/JsonSerializer/std_stream.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/JsonSerializer/std_string.cpp b/lib/ArduinoJson/extras/tests/JsonSerializer/std_string.cpp index 33b8f50..0d23429 100644 --- a/lib/ArduinoJson/extras/tests/JsonSerializer/std_string.cpp +++ b/lib/ArduinoJson/extras/tests/JsonSerializer/std_string.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/JsonVariant/CMakeLists.txt b/lib/ArduinoJson/extras/tests/JsonVariant/CMakeLists.txt index 282e6ce..6aec75f 100644 --- a/lib/ArduinoJson/extras/tests/JsonVariant/CMakeLists.txt +++ b/lib/ArduinoJson/extras/tests/JsonVariant/CMakeLists.txt @@ -1,5 +1,5 @@ # ArduinoJson - https://arduinojson.org -# Copyright © 2014-2024, Benoit BLANCHON +# Copyright © 2014-2025, Benoit BLANCHON # MIT License add_executable(JsonVariantTests diff --git a/lib/ArduinoJson/extras/tests/JsonVariant/add.cpp b/lib/ArduinoJson/extras/tests/JsonVariant/add.cpp index a81d792..3aaa724 100644 --- a/lib/ArduinoJson/extras/tests/JsonVariant/add.cpp +++ b/lib/ArduinoJson/extras/tests/JsonVariant/add.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/JsonVariant/as.cpp b/lib/ArduinoJson/extras/tests/JsonVariant/as.cpp index bfdea04..b123572 100644 --- a/lib/ArduinoJson/extras/tests/JsonVariant/as.cpp +++ b/lib/ArduinoJson/extras/tests/JsonVariant/as.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include @@ -183,6 +183,7 @@ TEST_CASE("JsonVariant::as()") { variant.set("42"); REQUIRE(variant.as() == 42L); + REQUIRE(variant.as() == 42); REQUIRE(variant.as() == "42"); REQUIRE(variant.as().isStatic() == true); } @@ -198,7 +199,7 @@ TEST_CASE("JsonVariant::as()") { REQUIRE(variant.as() == "hello"); } - SECTION("set(std::string(\"4.2\"))") { + SECTION("set(std::string(\"4.2\")) (tiny string optimization)") { variant.set("4.2"_s); REQUIRE(variant.as() == true); @@ -210,6 +211,18 @@ TEST_CASE("JsonVariant::as()") { REQUIRE(variant.as().isStatic() == false); } + SECTION("set(std::string(\"123.45\"))") { + variant.set("123.45"_s); + + REQUIRE(variant.as() == true); + REQUIRE(variant.as() == 123L); + REQUIRE(variant.as() == Approx(123.45)); + REQUIRE(variant.as() == "123.45"_s); + REQUIRE(variant.as() == "123.45"_s); + REQUIRE(variant.as() == "123.45"); + REQUIRE(variant.as().isStatic() == false); + } + SECTION("set(\"true\")") { variant.set("true"); diff --git a/lib/ArduinoJson/extras/tests/JsonVariant/clear.cpp b/lib/ArduinoJson/extras/tests/JsonVariant/clear.cpp index 8e292d2..6078d6b 100644 --- a/lib/ArduinoJson/extras/tests/JsonVariant/clear.cpp +++ b/lib/ArduinoJson/extras/tests/JsonVariant/clear.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/JsonVariant/compare.cpp b/lib/ArduinoJson/extras/tests/JsonVariant/compare.cpp index de7ced7..719566e 100644 --- a/lib/ArduinoJson/extras/tests/JsonVariant/compare.cpp +++ b/lib/ArduinoJson/extras/tests/JsonVariant/compare.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/JsonVariant/converters.cpp b/lib/ArduinoJson/extras/tests/JsonVariant/converters.cpp index 545c4be..10d7385 100644 --- a/lib/ArduinoJson/extras/tests/JsonVariant/converters.cpp +++ b/lib/ArduinoJson/extras/tests/JsonVariant/converters.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/JsonVariant/copy.cpp b/lib/ArduinoJson/extras/tests/JsonVariant/copy.cpp index 7a52c2e..b5da71f 100644 --- a/lib/ArduinoJson/extras/tests/JsonVariant/copy.cpp +++ b/lib/ArduinoJson/extras/tests/JsonVariant/copy.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/JsonVariant/is.cpp b/lib/ArduinoJson/extras/tests/JsonVariant/is.cpp index 4d07034..9e38b7b 100644 --- a/lib/ArduinoJson/extras/tests/JsonVariant/is.cpp +++ b/lib/ArduinoJson/extras/tests/JsonVariant/is.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/JsonVariant/isnull.cpp b/lib/ArduinoJson/extras/tests/JsonVariant/isnull.cpp index 75617e9..7683eb8 100644 --- a/lib/ArduinoJson/extras/tests/JsonVariant/isnull.cpp +++ b/lib/ArduinoJson/extras/tests/JsonVariant/isnull.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/JsonVariant/misc.cpp b/lib/ArduinoJson/extras/tests/JsonVariant/misc.cpp index 4b39cf8..6298344 100644 --- a/lib/ArduinoJson/extras/tests/JsonVariant/misc.cpp +++ b/lib/ArduinoJson/extras/tests/JsonVariant/misc.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/JsonVariant/nesting.cpp b/lib/ArduinoJson/extras/tests/JsonVariant/nesting.cpp index f2a703f..cb4e351 100644 --- a/lib/ArduinoJson/extras/tests/JsonVariant/nesting.cpp +++ b/lib/ArduinoJson/extras/tests/JsonVariant/nesting.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/JsonVariant/or.cpp b/lib/ArduinoJson/extras/tests/JsonVariant/or.cpp index 937a0cf..5886899 100644 --- a/lib/ArduinoJson/extras/tests/JsonVariant/or.cpp +++ b/lib/ArduinoJson/extras/tests/JsonVariant/or.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/JsonVariant/overflow.cpp b/lib/ArduinoJson/extras/tests/JsonVariant/overflow.cpp index 744805f..00dbed7 100644 --- a/lib/ArduinoJson/extras/tests/JsonVariant/overflow.cpp +++ b/lib/ArduinoJson/extras/tests/JsonVariant/overflow.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/JsonVariant/remove.cpp b/lib/ArduinoJson/extras/tests/JsonVariant/remove.cpp index 3371c2e..2926cfe 100644 --- a/lib/ArduinoJson/extras/tests/JsonVariant/remove.cpp +++ b/lib/ArduinoJson/extras/tests/JsonVariant/remove.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/JsonVariant/set.cpp b/lib/ArduinoJson/extras/tests/JsonVariant/set.cpp index b71c001..7d56818 100644 --- a/lib/ArduinoJson/extras/tests/JsonVariant/set.cpp +++ b/lib/ArduinoJson/extras/tests/JsonVariant/set.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include @@ -63,6 +63,18 @@ TEST_CASE("JsonVariant::set() when there is enough memory") { }); } + SECTION("char* (tiny string optimization)") { + char str[16]; + + strcpy(str, "abc"); + bool result = variant.set(str); + strcpy(str, "def"); + + REQUIRE(result == true); + REQUIRE(variant == "abc"); // stores by copy + REQUIRE(spy.log() == AllocatorLog{}); + } + SECTION("(char*)0") { bool result = variant.set(static_cast(0)); diff --git a/lib/ArduinoJson/extras/tests/JsonVariant/size.cpp b/lib/ArduinoJson/extras/tests/JsonVariant/size.cpp index 2f8e8a7..e0c5bb4 100644 --- a/lib/ArduinoJson/extras/tests/JsonVariant/size.cpp +++ b/lib/ArduinoJson/extras/tests/JsonVariant/size.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/JsonVariant/stl_containers.cpp b/lib/ArduinoJson/extras/tests/JsonVariant/stl_containers.cpp index 6ffa580..53a23fd 100644 --- a/lib/ArduinoJson/extras/tests/JsonVariant/stl_containers.cpp +++ b/lib/ArduinoJson/extras/tests/JsonVariant/stl_containers.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/JsonVariant/subscript.cpp b/lib/ArduinoJson/extras/tests/JsonVariant/subscript.cpp index 7c3d1e4..0f9509c 100644 --- a/lib/ArduinoJson/extras/tests/JsonVariant/subscript.cpp +++ b/lib/ArduinoJson/extras/tests/JsonVariant/subscript.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/JsonVariant/types.cpp b/lib/ArduinoJson/extras/tests/JsonVariant/types.cpp index b04c91f..26a6265 100644 --- a/lib/ArduinoJson/extras/tests/JsonVariant/types.cpp +++ b/lib/ArduinoJson/extras/tests/JsonVariant/types.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/JsonVariant/unbound.cpp b/lib/ArduinoJson/extras/tests/JsonVariant/unbound.cpp index 0f1740b..a19a8c4 100644 --- a/lib/ArduinoJson/extras/tests/JsonVariant/unbound.cpp +++ b/lib/ArduinoJson/extras/tests/JsonVariant/unbound.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/JsonVariantConst/CMakeLists.txt b/lib/ArduinoJson/extras/tests/JsonVariantConst/CMakeLists.txt index b943f16..1cff558 100644 --- a/lib/ArduinoJson/extras/tests/JsonVariantConst/CMakeLists.txt +++ b/lib/ArduinoJson/extras/tests/JsonVariantConst/CMakeLists.txt @@ -1,5 +1,5 @@ # ArduinoJson - https://arduinojson.org -# Copyright © 2014-2024, Benoit BLANCHON +# Copyright © 2014-2025, Benoit BLANCHON # MIT License add_executable(JsonVariantConstTests diff --git a/lib/ArduinoJson/extras/tests/JsonVariantConst/as.cpp b/lib/ArduinoJson/extras/tests/JsonVariantConst/as.cpp index 5ef1563..8584ff5 100644 --- a/lib/ArduinoJson/extras/tests/JsonVariantConst/as.cpp +++ b/lib/ArduinoJson/extras/tests/JsonVariantConst/as.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/JsonVariantConst/is.cpp b/lib/ArduinoJson/extras/tests/JsonVariantConst/is.cpp index 24f9326..32c16ac 100644 --- a/lib/ArduinoJson/extras/tests/JsonVariantConst/is.cpp +++ b/lib/ArduinoJson/extras/tests/JsonVariantConst/is.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/JsonVariantConst/isnull.cpp b/lib/ArduinoJson/extras/tests/JsonVariantConst/isnull.cpp index 14572c7..30996db 100644 --- a/lib/ArduinoJson/extras/tests/JsonVariantConst/isnull.cpp +++ b/lib/ArduinoJson/extras/tests/JsonVariantConst/isnull.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/JsonVariantConst/nesting.cpp b/lib/ArduinoJson/extras/tests/JsonVariantConst/nesting.cpp index 827f766..4f035db 100644 --- a/lib/ArduinoJson/extras/tests/JsonVariantConst/nesting.cpp +++ b/lib/ArduinoJson/extras/tests/JsonVariantConst/nesting.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/JsonVariantConst/size.cpp b/lib/ArduinoJson/extras/tests/JsonVariantConst/size.cpp index c047951..9a6943e 100644 --- a/lib/ArduinoJson/extras/tests/JsonVariantConst/size.cpp +++ b/lib/ArduinoJson/extras/tests/JsonVariantConst/size.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/JsonVariantConst/subscript.cpp b/lib/ArduinoJson/extras/tests/JsonVariantConst/subscript.cpp index a207c53..281e3d9 100644 --- a/lib/ArduinoJson/extras/tests/JsonVariantConst/subscript.cpp +++ b/lib/ArduinoJson/extras/tests/JsonVariantConst/subscript.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/Misc/CMakeLists.txt b/lib/ArduinoJson/extras/tests/Misc/CMakeLists.txt index 4230a9c..05be1ca 100644 --- a/lib/ArduinoJson/extras/tests/Misc/CMakeLists.txt +++ b/lib/ArduinoJson/extras/tests/Misc/CMakeLists.txt @@ -1,5 +1,5 @@ # ArduinoJson - https://arduinojson.org -# Copyright © 2014-2024, Benoit BLANCHON +# Copyright © 2014-2025, Benoit BLANCHON # MIT License add_executable(MiscTests @@ -7,6 +7,7 @@ add_executable(MiscTests conflicts.cpp issue1967.cpp issue2129.cpp + issue2166.cpp JsonString.cpp NoArduinoHeader.cpp printable.cpp diff --git a/lib/ArduinoJson/extras/tests/Misc/JsonString.cpp b/lib/ArduinoJson/extras/tests/Misc/JsonString.cpp index 3a33677..a66f771 100644 --- a/lib/ArduinoJson/extras/tests/Misc/JsonString.cpp +++ b/lib/ArduinoJson/extras/tests/Misc/JsonString.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/Misc/NoArduinoHeader.cpp b/lib/ArduinoJson/extras/tests/Misc/NoArduinoHeader.cpp index b589127..efcd8e4 100644 --- a/lib/ArduinoJson/extras/tests/Misc/NoArduinoHeader.cpp +++ b/lib/ArduinoJson/extras/tests/Misc/NoArduinoHeader.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #define ARDUINO 1 diff --git a/lib/ArduinoJson/extras/tests/Misc/Readers.cpp b/lib/ArduinoJson/extras/tests/Misc/Readers.cpp index ffb6355..4077243 100644 --- a/lib/ArduinoJson/extras/tests/Misc/Readers.cpp +++ b/lib/ArduinoJson/extras/tests/Misc/Readers.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/Misc/StringAdapters.cpp b/lib/ArduinoJson/extras/tests/Misc/StringAdapters.cpp index 71e458b..9917897 100644 --- a/lib/ArduinoJson/extras/tests/Misc/StringAdapters.cpp +++ b/lib/ArduinoJson/extras/tests/Misc/StringAdapters.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include @@ -128,6 +128,7 @@ TEST_CASE("IsString") { CHECK(IsString::value == true); CHECK(IsString::value == true); CHECK(IsString::value == true); + CHECK(IsString::value == true); CHECK(IsString<::String>::value == true); CHECK(IsString<::StringSumHelper>::value == true); CHECK(IsString::value == false); diff --git a/lib/ArduinoJson/extras/tests/Misc/StringWriter.cpp b/lib/ArduinoJson/extras/tests/Misc/StringWriter.cpp index 3bf60ec..6c22720 100644 --- a/lib/ArduinoJson/extras/tests/Misc/StringWriter.cpp +++ b/lib/ArduinoJson/extras/tests/Misc/StringWriter.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/Misc/TypeTraits.cpp b/lib/ArduinoJson/extras/tests/Misc/TypeTraits.cpp index 5d08106..4fad799 100644 --- a/lib/ArduinoJson/extras/tests/Misc/TypeTraits.cpp +++ b/lib/ArduinoJson/extras/tests/Misc/TypeTraits.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/Misc/Utf16.cpp b/lib/ArduinoJson/extras/tests/Misc/Utf16.cpp index 4b19fdb..39fbe3c 100644 --- a/lib/ArduinoJson/extras/tests/Misc/Utf16.cpp +++ b/lib/ArduinoJson/extras/tests/Misc/Utf16.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/Misc/Utf8.cpp b/lib/ArduinoJson/extras/tests/Misc/Utf8.cpp index 3a60281..740046d 100644 --- a/lib/ArduinoJson/extras/tests/Misc/Utf8.cpp +++ b/lib/ArduinoJson/extras/tests/Misc/Utf8.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/Misc/arithmeticCompare.cpp b/lib/ArduinoJson/extras/tests/Misc/arithmeticCompare.cpp index a879500..e955194 100644 --- a/lib/ArduinoJson/extras/tests/Misc/arithmeticCompare.cpp +++ b/lib/ArduinoJson/extras/tests/Misc/arithmeticCompare.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/Misc/conflicts.cpp b/lib/ArduinoJson/extras/tests/Misc/conflicts.cpp index 5ce6823..a00d019 100644 --- a/lib/ArduinoJson/extras/tests/Misc/conflicts.cpp +++ b/lib/ArduinoJson/extras/tests/Misc/conflicts.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License // Include any header that might use the conflicting macros diff --git a/lib/ArduinoJson/extras/tests/Misc/custom_string.hpp b/lib/ArduinoJson/extras/tests/Misc/custom_string.hpp index 9be1f54..9982040 100644 --- a/lib/ArduinoJson/extras/tests/Misc/custom_string.hpp +++ b/lib/ArduinoJson/extras/tests/Misc/custom_string.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/extras/tests/Misc/issue1967.cpp b/lib/ArduinoJson/extras/tests/Misc/issue1967.cpp index 833fcf0..bb067f0 100644 --- a/lib/ArduinoJson/extras/tests/Misc/issue1967.cpp +++ b/lib/ArduinoJson/extras/tests/Misc/issue1967.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License // we expect ArduinoJson.h to include diff --git a/lib/ArduinoJson/extras/tests/Misc/issue2129.cpp b/lib/ArduinoJson/extras/tests/Misc/issue2129.cpp index 8b336f2..022e232 100644 --- a/lib/ArduinoJson/extras/tests/Misc/issue2129.cpp +++ b/lib/ArduinoJson/extras/tests/Misc/issue2129.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/Misc/issue2166.cpp b/lib/ArduinoJson/extras/tests/Misc/issue2166.cpp new file mode 100644 index 0000000..f068bd6 --- /dev/null +++ b/lib/ArduinoJson/extras/tests/Misc/issue2166.cpp @@ -0,0 +1,22 @@ +// ArduinoJson - https://arduinojson.org +// Copyright © 2014-2025, Benoit BLANCHON +// MIT License + +#include +#include + +struct CCLASS { + static const char mszKey[]; +}; + +TEST_CASE("Issue #2166") { + JsonDocument doc; + doc[CCLASS::mszKey] = 12; + REQUIRE(doc.as() == "{\"test3\":12}"); + + JsonObject obj = doc.to(); + obj[CCLASS::mszKey] = 12; + REQUIRE(doc.as() == "{\"test3\":12}"); +} + +const char CCLASS::mszKey[] = "test3"; diff --git a/lib/ArduinoJson/extras/tests/Misc/printable.cpp b/lib/ArduinoJson/extras/tests/Misc/printable.cpp index 6062cce..3e20a5b 100644 --- a/lib/ArduinoJson/extras/tests/Misc/printable.cpp +++ b/lib/ArduinoJson/extras/tests/Misc/printable.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/Misc/unsigned_char.cpp b/lib/ArduinoJson/extras/tests/Misc/unsigned_char.cpp index a1bb155..3e95027 100644 --- a/lib/ArduinoJson/extras/tests/Misc/unsigned_char.cpp +++ b/lib/ArduinoJson/extras/tests/Misc/unsigned_char.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/Misc/version.cpp b/lib/ArduinoJson/extras/tests/Misc/version.cpp index 2256fd2..136dbf3 100644 --- a/lib/ArduinoJson/extras/tests/Misc/version.cpp +++ b/lib/ArduinoJson/extras/tests/Misc/version.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/Misc/weird_strcmp.hpp b/lib/ArduinoJson/extras/tests/Misc/weird_strcmp.hpp index c0e5c6c..dbe122f 100644 --- a/lib/ArduinoJson/extras/tests/Misc/weird_strcmp.hpp +++ b/lib/ArduinoJson/extras/tests/Misc/weird_strcmp.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/MixedConfiguration/CMakeLists.txt b/lib/ArduinoJson/extras/tests/MixedConfiguration/CMakeLists.txt index b8cad8e..08d8888 100644 --- a/lib/ArduinoJson/extras/tests/MixedConfiguration/CMakeLists.txt +++ b/lib/ArduinoJson/extras/tests/MixedConfiguration/CMakeLists.txt @@ -1,5 +1,5 @@ # ArduinoJson - https://arduinojson.org -# Copyright © 2014-2024, Benoit BLANCHON +# Copyright © 2014-2025, Benoit BLANCHON # MIT License add_executable(MixedConfigurationTests diff --git a/lib/ArduinoJson/extras/tests/MixedConfiguration/enable_comments_0.cpp b/lib/ArduinoJson/extras/tests/MixedConfiguration/enable_comments_0.cpp index bffbe7a..f0904c5 100644 --- a/lib/ArduinoJson/extras/tests/MixedConfiguration/enable_comments_0.cpp +++ b/lib/ArduinoJson/extras/tests/MixedConfiguration/enable_comments_0.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #define ARDUINOJSON_ENABLE_COMMENTS 0 diff --git a/lib/ArduinoJson/extras/tests/MixedConfiguration/enable_comments_1.cpp b/lib/ArduinoJson/extras/tests/MixedConfiguration/enable_comments_1.cpp index db9c263..7e135df 100644 --- a/lib/ArduinoJson/extras/tests/MixedConfiguration/enable_comments_1.cpp +++ b/lib/ArduinoJson/extras/tests/MixedConfiguration/enable_comments_1.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #define ARDUINOJSON_ENABLE_COMMENTS 1 diff --git a/lib/ArduinoJson/extras/tests/MixedConfiguration/enable_progmem_1.cpp b/lib/ArduinoJson/extras/tests/MixedConfiguration/enable_progmem_1.cpp index 3dc869c..312a87f 100644 --- a/lib/ArduinoJson/extras/tests/MixedConfiguration/enable_progmem_1.cpp +++ b/lib/ArduinoJson/extras/tests/MixedConfiguration/enable_progmem_1.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #define ARDUINOJSON_ENABLE_PROGMEM 1 diff --git a/lib/ArduinoJson/extras/tests/MixedConfiguration/issue1707.cpp b/lib/ArduinoJson/extras/tests/MixedConfiguration/issue1707.cpp index 5dc3c61..ff8d2ba 100644 --- a/lib/ArduinoJson/extras/tests/MixedConfiguration/issue1707.cpp +++ b/lib/ArduinoJson/extras/tests/MixedConfiguration/issue1707.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #define ARDUINO diff --git a/lib/ArduinoJson/extras/tests/MsgPackDeserializer/CMakeLists.txt b/lib/ArduinoJson/extras/tests/MsgPackDeserializer/CMakeLists.txt index 61dc8b9..96b4584 100644 --- a/lib/ArduinoJson/extras/tests/MsgPackDeserializer/CMakeLists.txt +++ b/lib/ArduinoJson/extras/tests/MsgPackDeserializer/CMakeLists.txt @@ -1,5 +1,5 @@ # ArduinoJson - https://arduinojson.org -# Copyright © 2014-2024, Benoit BLANCHON +# Copyright © 2014-2025, Benoit BLANCHON # MIT License add_executable(MsgPackDeserializerTests diff --git a/lib/ArduinoJson/extras/tests/MsgPackDeserializer/deserializeArray.cpp b/lib/ArduinoJson/extras/tests/MsgPackDeserializer/deserializeArray.cpp index 053c765..03409a9 100644 --- a/lib/ArduinoJson/extras/tests/MsgPackDeserializer/deserializeArray.cpp +++ b/lib/ArduinoJson/extras/tests/MsgPackDeserializer/deserializeArray.cpp @@ -1,12 +1,15 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include #include +#include "Allocators.hpp" + TEST_CASE("deserialize MsgPack array") { - JsonDocument doc; + SpyingAllocator spy; + JsonDocument doc(&spy); SECTION("fixarray") { SECTION("empty") { @@ -30,6 +33,24 @@ TEST_CASE("deserialize MsgPack array") { REQUIRE(array[0] == 1); REQUIRE(array[1] == 2); } + + SECTION("tiny strings") { + DeserializationError error = + deserializeMsgPack(doc, "\x92\xA3xxx\xA3yyy"); + + REQUIRE(error == DeserializationError::Ok); + REQUIRE(doc.is()); + REQUIRE(doc.size() == 2); + REQUIRE(doc[0] == "xxx"); + REQUIRE(doc[1] == "yyy"); + REQUIRE(spy.log() == AllocatorLog{ + Allocate(sizeofPool()), + Allocate(sizeofString("xxx")), + // Buffer is reused for the next string + Deallocate(sizeofString("xxx")), + Reallocate(sizeofPool(), sizeofPool(2)), + }); + } } SECTION("array 16") { diff --git a/lib/ArduinoJson/extras/tests/MsgPackDeserializer/deserializeObject.cpp b/lib/ArduinoJson/extras/tests/MsgPackDeserializer/deserializeObject.cpp index 675329e..75266f2 100644 --- a/lib/ArduinoJson/extras/tests/MsgPackDeserializer/deserializeObject.cpp +++ b/lib/ArduinoJson/extras/tests/MsgPackDeserializer/deserializeObject.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/MsgPackDeserializer/deserializeVariant.cpp b/lib/ArduinoJson/extras/tests/MsgPackDeserializer/deserializeVariant.cpp index 412d541..bbe88ed 100644 --- a/lib/ArduinoJson/extras/tests/MsgPackDeserializer/deserializeVariant.cpp +++ b/lib/ArduinoJson/extras/tests/MsgPackDeserializer/deserializeVariant.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include @@ -348,13 +348,14 @@ TEST_CASE("deserializeMsgPack() under memory constaints") { SECTION("{}") { checkError(0, "\x80", DeserializationError::Ok); } - SECTION("{H:1}") { - checkError(1, "\x81\xA1H\x01", DeserializationError::NoMemory); - checkError(2, "\x81\xA1H\x01", DeserializationError::Ok); + SECTION("{Hello:1}") { + checkError(1, "\x81\xA5Hello\x01", DeserializationError::NoMemory); + checkError(2, "\x81\xA5Hello\x01", DeserializationError::Ok); } - SECTION("{H:1,W:2}") { - checkError(2, "\x82\xA1H\x01\xA1W\x02", DeserializationError::NoMemory); - checkError(3, "\x82\xA1H\x01\xA1W\x02", DeserializationError::Ok); + SECTION("{Hello:1,World:2}") { + checkError(2, "\x82\xA5Hello\x01\xA5World\x02", + DeserializationError::NoMemory); + checkError(3, "\x82\xA5Hello\x01\xA5World\x02", DeserializationError::Ok); } } @@ -362,14 +363,16 @@ TEST_CASE("deserializeMsgPack() under memory constaints") { SECTION("{}") { checkError(0, "\xDE\x00\x00", DeserializationError::Ok); } - SECTION("{H:1}") { - checkError(1, "\xDE\x00\x01\xA1H\x01", DeserializationError::NoMemory); - checkError(2, "\xDE\x00\x01\xA1H\x01", DeserializationError::Ok); - } - SECTION("{H:1,W:2}") { - checkError(2, "\xDE\x00\x02\xA1H\x01\xA1W\x02", + SECTION("{Hello:1}") { + checkError(1, "\xDE\x00\x01\xA5Hello\x01", DeserializationError::NoMemory); - checkError(3, "\xDE\x00\x02\xA1H\x01\xA1W\x02", DeserializationError::Ok); + checkError(2, "\xDE\x00\x01\xA5Hello\x01", DeserializationError::Ok); + } + SECTION("{Hello:1,World:2}") { + checkError(2, "\xDE\x00\x02\xA5Hello\x01\xA5World\x02", + DeserializationError::NoMemory); + checkError(3, "\xDE\x00\x02\xA5Hello\x01\xA5World\x02", + DeserializationError::Ok); } } @@ -382,8 +385,8 @@ TEST_CASE("deserializeMsgPack() under memory constaints") { DeserializationError::NoMemory); checkError(2, "\xDF\x00\x00\x00\x01\xA1H\x01", DeserializationError::Ok); } - SECTION("{H:1,W:2}") { - checkError(2, "\xDF\x00\x00\x00\x02\xA1H\x01\xA1W\x02", + SECTION("{Hello:1,World:2}") { + checkError(2, "\xDF\x00\x00\x00\x02\xA5Hello\x01\xA5World\x02", DeserializationError::NoMemory); checkError(3, "\xDF\x00\x00\x00\x02\xA1H\x01\xA1W\x02", DeserializationError::Ok); diff --git a/lib/ArduinoJson/extras/tests/MsgPackDeserializer/destination_types.cpp b/lib/ArduinoJson/extras/tests/MsgPackDeserializer/destination_types.cpp index f0d04d6..6b437ec 100644 --- a/lib/ArduinoJson/extras/tests/MsgPackDeserializer/destination_types.cpp +++ b/lib/ArduinoJson/extras/tests/MsgPackDeserializer/destination_types.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/MsgPackDeserializer/doubleToFloat.cpp b/lib/ArduinoJson/extras/tests/MsgPackDeserializer/doubleToFloat.cpp index 167261f..6eadd0e 100644 --- a/lib/ArduinoJson/extras/tests/MsgPackDeserializer/doubleToFloat.cpp +++ b/lib/ArduinoJson/extras/tests/MsgPackDeserializer/doubleToFloat.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/MsgPackDeserializer/errors.cpp b/lib/ArduinoJson/extras/tests/MsgPackDeserializer/errors.cpp index dff712a..9a8119e 100644 --- a/lib/ArduinoJson/extras/tests/MsgPackDeserializer/errors.cpp +++ b/lib/ArduinoJson/extras/tests/MsgPackDeserializer/errors.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/MsgPackDeserializer/filter.cpp b/lib/ArduinoJson/extras/tests/MsgPackDeserializer/filter.cpp index dcd2d54..6bcd7b1 100644 --- a/lib/ArduinoJson/extras/tests/MsgPackDeserializer/filter.cpp +++ b/lib/ArduinoJson/extras/tests/MsgPackDeserializer/filter.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/MsgPackDeserializer/input_types.cpp b/lib/ArduinoJson/extras/tests/MsgPackDeserializer/input_types.cpp index b581f20..42f6137 100644 --- a/lib/ArduinoJson/extras/tests/MsgPackDeserializer/input_types.cpp +++ b/lib/ArduinoJson/extras/tests/MsgPackDeserializer/input_types.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/MsgPackDeserializer/nestingLimit.cpp b/lib/ArduinoJson/extras/tests/MsgPackDeserializer/nestingLimit.cpp index 206600c..a41ea0a 100644 --- a/lib/ArduinoJson/extras/tests/MsgPackDeserializer/nestingLimit.cpp +++ b/lib/ArduinoJson/extras/tests/MsgPackDeserializer/nestingLimit.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/MsgPackSerializer/CMakeLists.txt b/lib/ArduinoJson/extras/tests/MsgPackSerializer/CMakeLists.txt index 25b0384..8f484bb 100644 --- a/lib/ArduinoJson/extras/tests/MsgPackSerializer/CMakeLists.txt +++ b/lib/ArduinoJson/extras/tests/MsgPackSerializer/CMakeLists.txt @@ -1,5 +1,5 @@ # ArduinoJson - https://arduinojson.org -# Copyright © 2014-2024, Benoit BLANCHON +# Copyright © 2014-2025, Benoit BLANCHON # MIT License add_executable(MsgPackSerializerTests diff --git a/lib/ArduinoJson/extras/tests/MsgPackSerializer/destination_types.cpp b/lib/ArduinoJson/extras/tests/MsgPackSerializer/destination_types.cpp index 569d5f7..160ca8a 100644 --- a/lib/ArduinoJson/extras/tests/MsgPackSerializer/destination_types.cpp +++ b/lib/ArduinoJson/extras/tests/MsgPackSerializer/destination_types.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/MsgPackSerializer/measure.cpp b/lib/ArduinoJson/extras/tests/MsgPackSerializer/measure.cpp index e1480e2..882069b 100644 --- a/lib/ArduinoJson/extras/tests/MsgPackSerializer/measure.cpp +++ b/lib/ArduinoJson/extras/tests/MsgPackSerializer/measure.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/MsgPackSerializer/serializeArray.cpp b/lib/ArduinoJson/extras/tests/MsgPackSerializer/serializeArray.cpp index 3e36b9f..9539041 100644 --- a/lib/ArduinoJson/extras/tests/MsgPackSerializer/serializeArray.cpp +++ b/lib/ArduinoJson/extras/tests/MsgPackSerializer/serializeArray.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #define ARDUINOJSON_SLOT_ID_SIZE 4 // required to reach 65536 elements diff --git a/lib/ArduinoJson/extras/tests/MsgPackSerializer/serializeObject.cpp b/lib/ArduinoJson/extras/tests/MsgPackSerializer/serializeObject.cpp index 07774d0..7dc1526 100644 --- a/lib/ArduinoJson/extras/tests/MsgPackSerializer/serializeObject.cpp +++ b/lib/ArduinoJson/extras/tests/MsgPackSerializer/serializeObject.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/MsgPackSerializer/serializeVariant.cpp b/lib/ArduinoJson/extras/tests/MsgPackSerializer/serializeVariant.cpp index 505b56c..56faccd 100644 --- a/lib/ArduinoJson/extras/tests/MsgPackSerializer/serializeVariant.cpp +++ b/lib/ArduinoJson/extras/tests/MsgPackSerializer/serializeVariant.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/Numbers/CMakeLists.txt b/lib/ArduinoJson/extras/tests/Numbers/CMakeLists.txt index e4ef2dd..6505ce7 100644 --- a/lib/ArduinoJson/extras/tests/Numbers/CMakeLists.txt +++ b/lib/ArduinoJson/extras/tests/Numbers/CMakeLists.txt @@ -1,5 +1,5 @@ # ArduinoJson - https://arduinojson.org -# Copyright © 2014-2024, Benoit BLANCHON +# Copyright © 2014-2025, Benoit BLANCHON # MIT License add_executable(NumbersTests diff --git a/lib/ArduinoJson/extras/tests/Numbers/convertNumber.cpp b/lib/ArduinoJson/extras/tests/Numbers/convertNumber.cpp index 7a2ae53..98cd676 100644 --- a/lib/ArduinoJson/extras/tests/Numbers/convertNumber.cpp +++ b/lib/ArduinoJson/extras/tests/Numbers/convertNumber.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/Numbers/decomposeFloat.cpp b/lib/ArduinoJson/extras/tests/Numbers/decomposeFloat.cpp index 73de571..e0578f6 100644 --- a/lib/ArduinoJson/extras/tests/Numbers/decomposeFloat.cpp +++ b/lib/ArduinoJson/extras/tests/Numbers/decomposeFloat.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/Numbers/parseDouble.cpp b/lib/ArduinoJson/extras/tests/Numbers/parseDouble.cpp index cd84ca4..a459279 100644 --- a/lib/ArduinoJson/extras/tests/Numbers/parseDouble.cpp +++ b/lib/ArduinoJson/extras/tests/Numbers/parseDouble.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #define ARDUINOJSON_USE_DOUBLE 1 diff --git a/lib/ArduinoJson/extras/tests/Numbers/parseFloat.cpp b/lib/ArduinoJson/extras/tests/Numbers/parseFloat.cpp index f81428f..62c0917 100644 --- a/lib/ArduinoJson/extras/tests/Numbers/parseFloat.cpp +++ b/lib/ArduinoJson/extras/tests/Numbers/parseFloat.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #define ARDUINOJSON_ENABLE_NAN 1 diff --git a/lib/ArduinoJson/extras/tests/Numbers/parseInteger.cpp b/lib/ArduinoJson/extras/tests/Numbers/parseInteger.cpp index 2180304..aff2358 100644 --- a/lib/ArduinoJson/extras/tests/Numbers/parseInteger.cpp +++ b/lib/ArduinoJson/extras/tests/Numbers/parseInteger.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/Numbers/parseNumber.cpp b/lib/ArduinoJson/extras/tests/Numbers/parseNumber.cpp index bc5d3b3..37b12bb 100644 --- a/lib/ArduinoJson/extras/tests/Numbers/parseNumber.cpp +++ b/lib/ArduinoJson/extras/tests/Numbers/parseNumber.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/ResourceManager/CMakeLists.txt b/lib/ArduinoJson/extras/tests/ResourceManager/CMakeLists.txt index 9214f5b..3a0908a 100644 --- a/lib/ArduinoJson/extras/tests/ResourceManager/CMakeLists.txt +++ b/lib/ArduinoJson/extras/tests/ResourceManager/CMakeLists.txt @@ -1,5 +1,5 @@ # ArduinoJson - https://arduinojson.org -# Copyright © 2014-2024, Benoit BLANCHON +# Copyright © 2014-2025, Benoit BLANCHON # MIT License add_executable(ResourceManagerTests @@ -8,6 +8,7 @@ add_executable(ResourceManagerTests saveString.cpp shrinkToFit.cpp size.cpp + StringBuffer.cpp StringBuilder.cpp swap.cpp ) diff --git a/lib/ArduinoJson/extras/tests/ResourceManager/StringBuffer.cpp b/lib/ArduinoJson/extras/tests/ResourceManager/StringBuffer.cpp new file mode 100644 index 0000000..1fb2b01 --- /dev/null +++ b/lib/ArduinoJson/extras/tests/ResourceManager/StringBuffer.cpp @@ -0,0 +1,50 @@ +// ArduinoJson - https://arduinojson.org +// Copyright © 2014-2025, Benoit BLANCHON +// MIT License + +#include +#include + +#include "Allocators.hpp" +#include "Literals.hpp" + +using namespace ArduinoJson::detail; + +TEST_CASE("StringBuffer") { + SpyingAllocator spy; + ResourceManager resources(&spy); + StringBuffer sb(&resources); + VariantData variant; + + SECTION("Tiny string") { + auto ptr = sb.reserve(3); + strcpy(ptr, "hi!"); + sb.save(&variant); + + REQUIRE(variant.type() == VariantType::TinyString); + REQUIRE(variant.asString() == "hi!"); + } + + SECTION("Tiny string can't contain NUL") { + auto ptr = sb.reserve(3); + memcpy(ptr, "a\0b", 3); + sb.save(&variant); + + REQUIRE(variant.type() == VariantType::OwnedString); + + auto str = variant.asString(); + REQUIRE(str.size() == 3); + REQUIRE(str.c_str()[0] == 'a'); + REQUIRE(str.c_str()[1] == 0); + REQUIRE(str.c_str()[2] == 'b'); + } + + SECTION("Tiny string can't have 4 characters") { + auto ptr = sb.reserve(4); + strcpy(ptr, "alfa"); + sb.save(&variant); + + REQUIRE(variant.type() == VariantType::OwnedString); + REQUIRE(variant.asString() == "alfa"); + } +} diff --git a/lib/ArduinoJson/extras/tests/ResourceManager/StringBuilder.cpp b/lib/ArduinoJson/extras/tests/ResourceManager/StringBuilder.cpp index b649afe..a63661b 100644 --- a/lib/ArduinoJson/extras/tests/ResourceManager/StringBuilder.cpp +++ b/lib/ArduinoJson/extras/tests/ResourceManager/StringBuilder.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include @@ -7,6 +7,7 @@ #include "Allocators.hpp" +using namespace ArduinoJson; using namespace ArduinoJson::detail; TEST_CASE("StringBuilder") { @@ -16,17 +17,36 @@ TEST_CASE("StringBuilder") { SECTION("Empty string") { StringBuilder str(&resources); + VariantData data; str.startString(); - str.save(); + str.save(&data); - REQUIRE(resources.size() == sizeofString("")); REQUIRE(resources.overflowed() == false); - REQUIRE(spyingAllocator.log() == - AllocatorLog{ - Allocate(sizeofStringBuffer()), - Reallocate(sizeofStringBuffer(), sizeofString("")), - }); + REQUIRE(spyingAllocator.log() == AllocatorLog{ + Allocate(sizeofStringBuffer()), + }); + REQUIRE(data.type() == VariantType::TinyString); + } + + SECTION("Tiny string") { + StringBuilder str(&resources); + + str.startString(); + str.append("url"); + + REQUIRE(str.isValid() == true); + REQUIRE(str.str() == "url"); + REQUIRE(spyingAllocator.log() == AllocatorLog{ + Allocate(sizeofStringBuffer()), + }); + + VariantData data; + str.save(&data); + + REQUIRE(resources.overflowed() == false); + REQUIRE(data.type() == VariantType::TinyString); + REQUIRE(data.asString() == "url"); } SECTION("Short string fits in first allocation") { @@ -96,48 +116,69 @@ TEST_CASE("StringBuilder") { } } -static StringNode* addStringToPool(ResourceManager& resources, const char* s) { - StringBuilder str(&resources); - str.startString(); - str.append(s); - return str.save(); +static JsonString saveString(StringBuilder& builder, const char* s) { + VariantData data; + builder.startString(); + builder.append(s); + builder.save(&data); + return data.asString(); } TEST_CASE("StringBuilder::save() deduplicates strings") { - ResourceManager resources; + SpyingAllocator spy; + ResourceManager resources(&spy); + StringBuilder builder(&resources); SECTION("Basic") { - auto s1 = addStringToPool(resources, "hello"); - auto s2 = addStringToPool(resources, "world"); - auto s3 = addStringToPool(resources, "hello"); + auto s1 = saveString(builder, "hello"); + auto s2 = saveString(builder, "world"); + auto s3 = saveString(builder, "hello"); - REQUIRE(s1 == s3); - REQUIRE(s2 != s3); - REQUIRE(s1->references == 2); - REQUIRE(s2->references == 1); - REQUIRE(s3->references == 2); - REQUIRE(resources.size() == sizeofString("hello") + sizeofString("world")); + REQUIRE(s1 == "hello"); + REQUIRE(s2 == "world"); + REQUIRE(+s1.c_str() == +s3.c_str()); // same address + + REQUIRE(spy.log() == + AllocatorLog{ + Allocate(sizeofStringBuffer()), + Reallocate(sizeofStringBuffer(), sizeofString("hello")), + Allocate(sizeofStringBuffer()), + Reallocate(sizeofStringBuffer(), sizeofString("world")), + Allocate(sizeofStringBuffer()), + }); } SECTION("Requires terminator") { - auto s1 = addStringToPool(resources, "hello world"); - auto s2 = addStringToPool(resources, "hello"); + auto s1 = saveString(builder, "hello world"); + auto s2 = saveString(builder, "hello"); - REQUIRE(s2 != s1); - REQUIRE(s1->references == 1); - REQUIRE(s2->references == 1); - REQUIRE(resources.size() == - sizeofString("hello world") + sizeofString("hello")); + REQUIRE(s1 == "hello world"); + REQUIRE(s2 == "hello"); + REQUIRE(+s2.c_str() != +s1.c_str()); // different address + + REQUIRE(spy.log() == + AllocatorLog{ + Allocate(sizeofStringBuffer()), + Reallocate(sizeofStringBuffer(), sizeofString("hello world")), + Allocate(sizeofStringBuffer()), + Reallocate(sizeofStringBuffer(), sizeofString("hello")), + }); } SECTION("Don't overrun") { - auto s1 = addStringToPool(resources, "hello world"); - auto s2 = addStringToPool(resources, "wor"); + auto s1 = saveString(builder, "hello world"); + auto s2 = saveString(builder, "worl"); - REQUIRE(s2 != s1); - REQUIRE(s1->references == 1); - REQUIRE(s2->references == 1); - REQUIRE(resources.size() == - sizeofString("hello world") + sizeofString("wor")); + REQUIRE(s1 == "hello world"); + REQUIRE(s2 == "worl"); + REQUIRE(s2.c_str() != s1.c_str()); // different address + + REQUIRE(spy.log() == + AllocatorLog{ + Allocate(sizeofStringBuffer()), + Reallocate(sizeofStringBuffer(), sizeofString("hello world")), + Allocate(sizeofStringBuffer()), + Reallocate(sizeofStringBuffer(), sizeofString("worl")), + }); } } diff --git a/lib/ArduinoJson/extras/tests/ResourceManager/allocVariant.cpp b/lib/ArduinoJson/extras/tests/ResourceManager/allocVariant.cpp index 3cfadf3..0568791 100644 --- a/lib/ArduinoJson/extras/tests/ResourceManager/allocVariant.cpp +++ b/lib/ArduinoJson/extras/tests/ResourceManager/allocVariant.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/ResourceManager/clear.cpp b/lib/ArduinoJson/extras/tests/ResourceManager/clear.cpp index a773603..e770776 100644 --- a/lib/ArduinoJson/extras/tests/ResourceManager/clear.cpp +++ b/lib/ArduinoJson/extras/tests/ResourceManager/clear.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/ResourceManager/saveString.cpp b/lib/ArduinoJson/extras/tests/ResourceManager/saveString.cpp index 88c242f..3c7a228 100644 --- a/lib/ArduinoJson/extras/tests/ResourceManager/saveString.cpp +++ b/lib/ArduinoJson/extras/tests/ResourceManager/saveString.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/ResourceManager/shrinkToFit.cpp b/lib/ArduinoJson/extras/tests/ResourceManager/shrinkToFit.cpp index d35ee34..4f1eb5d 100644 --- a/lib/ArduinoJson/extras/tests/ResourceManager/shrinkToFit.cpp +++ b/lib/ArduinoJson/extras/tests/ResourceManager/shrinkToFit.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/ResourceManager/size.cpp b/lib/ArduinoJson/extras/tests/ResourceManager/size.cpp index 8d4b799..17f3f42 100644 --- a/lib/ArduinoJson/extras/tests/ResourceManager/size.cpp +++ b/lib/ArduinoJson/extras/tests/ResourceManager/size.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/ResourceManager/swap.cpp b/lib/ArduinoJson/extras/tests/ResourceManager/swap.cpp index a2b1fe9..f5d8fee 100644 --- a/lib/ArduinoJson/extras/tests/ResourceManager/swap.cpp +++ b/lib/ArduinoJson/extras/tests/ResourceManager/swap.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/TextFormatter/CMakeLists.txt b/lib/ArduinoJson/extras/tests/TextFormatter/CMakeLists.txt index 3b3b5bb..79618c7 100644 --- a/lib/ArduinoJson/extras/tests/TextFormatter/CMakeLists.txt +++ b/lib/ArduinoJson/extras/tests/TextFormatter/CMakeLists.txt @@ -1,5 +1,5 @@ # ArduinoJson - https://arduinojson.org -# Copyright © 2014-2024, Benoit BLANCHON +# Copyright © 2014-2025, Benoit BLANCHON # MIT License add_executable(TextFormatterTests diff --git a/lib/ArduinoJson/extras/tests/TextFormatter/writeFloat.cpp b/lib/ArduinoJson/extras/tests/TextFormatter/writeFloat.cpp index a787712..1afcaec 100644 --- a/lib/ArduinoJson/extras/tests/TextFormatter/writeFloat.cpp +++ b/lib/ArduinoJson/extras/tests/TextFormatter/writeFloat.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/TextFormatter/writeInteger.cpp b/lib/ArduinoJson/extras/tests/TextFormatter/writeInteger.cpp index 1906750..47a864c 100644 --- a/lib/ArduinoJson/extras/tests/TextFormatter/writeInteger.cpp +++ b/lib/ArduinoJson/extras/tests/TextFormatter/writeInteger.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/extras/tests/TextFormatter/writeString.cpp b/lib/ArduinoJson/extras/tests/TextFormatter/writeString.cpp index 2d3d096..35ae297 100644 --- a/lib/ArduinoJson/extras/tests/TextFormatter/writeString.cpp +++ b/lib/ArduinoJson/extras/tests/TextFormatter/writeString.cpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #include diff --git a/lib/ArduinoJson/idf_component.yml b/lib/ArduinoJson/idf_component.yml index 70641db..843f9f4 100644 --- a/lib/ArduinoJson/idf_component.yml +++ b/lib/ArduinoJson/idf_component.yml @@ -1,7 +1,7 @@ -version: "7.3.0" +version: "7.4.1" description: >- A simple and efficient JSON library for embedded C++. - ★ 6785 stars on GitHub! + ★ 6898 stars on GitHub! Supports serialization, deserialization, MessagePack, streams, filtering, and more. Fully tested and documented. url: https://arduinojson.org/ diff --git a/lib/ArduinoJson/library.json b/lib/ArduinoJson/library.json index ba5d224..369a552 100644 --- a/lib/ArduinoJson/library.json +++ b/lib/ArduinoJson/library.json @@ -1,13 +1,13 @@ { "name": "ArduinoJson", "keywords": "json, rest, http, web", - "description": "A simple and efficient JSON library for embedded C++. ⭐ 6785 stars on GitHub! Supports serialization, deserialization, MessagePack, streams, filtering, and more. Fully tested and documented.", + "description": "A simple and efficient JSON library for embedded C++. ⭐ 6898 stars on GitHub! Supports serialization, deserialization, MessagePack, streams, filtering, and more. Fully tested and documented.", "homepage": "https://arduinojson.org/?utm_source=meta&utm_medium=library.json", "repository": { "type": "git", "url": "https://github.com/bblanchon/ArduinoJson.git" }, - "version": "7.3.0", + "version": "7.4.1", "authors": { "name": "Benoit Blanchon", "url": "https://blog.benoitblanchon.fr" diff --git a/lib/ArduinoJson/library.properties b/lib/ArduinoJson/library.properties index 6a153c0..c4f7784 100644 --- a/lib/ArduinoJson/library.properties +++ b/lib/ArduinoJson/library.properties @@ -1,9 +1,9 @@ name=ArduinoJson -version=7.3.0 +version=7.4.1 author=Benoit Blanchon maintainer=Benoit Blanchon sentence=A simple and efficient JSON library for embedded C++. -paragraph=⭐ 6785 stars on GitHub! Supports serialization, deserialization, MessagePack, streams, filtering, and more. Fully tested and documented. +paragraph=⭐ 6898 stars on GitHub! Supports serialization, deserialization, MessagePack, streams, filtering, and more. Fully tested and documented. category=Data Processing url=https://arduinojson.org/?utm_source=meta&utm_medium=library.properties architectures=* diff --git a/lib/ArduinoJson/src/ArduinoJson.h b/lib/ArduinoJson/src/ArduinoJson.h index fec64c3..eb4b94a 100644 --- a/lib/ArduinoJson/src/ArduinoJson.h +++ b/lib/ArduinoJson/src/ArduinoJson.h @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson.hpp b/lib/ArduinoJson/src/ArduinoJson.hpp index a14f2b1..5818de3 100644 --- a/lib/ArduinoJson/src/ArduinoJson.hpp +++ b/lib/ArduinoJson/src/ArduinoJson.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Array/ArrayData.hpp b/lib/ArduinoJson/src/ArduinoJson/Array/ArrayData.hpp index f0f3175..79ade35 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Array/ArrayData.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Array/ArrayData.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Array/ArrayImpl.hpp b/lib/ArduinoJson/src/ArduinoJson/Array/ArrayImpl.hpp index de26193..b4fb126 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Array/ArrayImpl.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Array/ArrayImpl.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Array/ElementProxy.hpp b/lib/ArduinoJson/src/ArduinoJson/Array/ElementProxy.hpp index 06994a9..ec2ea54 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Array/ElementProxy.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Array/ElementProxy.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Array/JsonArray.hpp b/lib/ArduinoJson/src/ArduinoJson/Array/JsonArray.hpp index 7f02f98..436793a 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Array/JsonArray.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Array/JsonArray.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Array/JsonArrayConst.hpp b/lib/ArduinoJson/src/ArduinoJson/Array/JsonArrayConst.hpp index b053518..b4c138a 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Array/JsonArrayConst.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Array/JsonArrayConst.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Array/JsonArrayIterator.hpp b/lib/ArduinoJson/src/ArduinoJson/Array/JsonArrayIterator.hpp index 70bb28f..39ca45e 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Array/JsonArrayIterator.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Array/JsonArrayIterator.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Array/Utilities.hpp b/lib/ArduinoJson/src/ArduinoJson/Array/Utilities.hpp index 200cb66..d9ba143 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Array/Utilities.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Array/Utilities.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Collection/CollectionData.hpp b/lib/ArduinoJson/src/ArduinoJson/Collection/CollectionData.hpp index 5817c7a..937c10c 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Collection/CollectionData.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Collection/CollectionData.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Collection/CollectionImpl.hpp b/lib/ArduinoJson/src/ArduinoJson/Collection/CollectionImpl.hpp index c0a650c..559c0a5 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Collection/CollectionImpl.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Collection/CollectionImpl.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Configuration.hpp b/lib/ArduinoJson/src/ArduinoJson/Configuration.hpp index cf6fb38..696ce4c 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Configuration.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Configuration.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Deserialization/DeserializationError.hpp b/lib/ArduinoJson/src/ArduinoJson/Deserialization/DeserializationError.hpp index fd32a55..7ec685f 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Deserialization/DeserializationError.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Deserialization/DeserializationError.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Deserialization/DeserializationOptions.hpp b/lib/ArduinoJson/src/ArduinoJson/Deserialization/DeserializationOptions.hpp index 4c73934..0d31d2f 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Deserialization/DeserializationOptions.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Deserialization/DeserializationOptions.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Deserialization/Filter.hpp b/lib/ArduinoJson/src/ArduinoJson/Deserialization/Filter.hpp index 7670556..4cd5647 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Deserialization/Filter.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Deserialization/Filter.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Deserialization/NestingLimit.hpp b/lib/ArduinoJson/src/ArduinoJson/Deserialization/NestingLimit.hpp index d30402b..fb46102 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Deserialization/NestingLimit.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Deserialization/NestingLimit.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Deserialization/Reader.hpp b/lib/ArduinoJson/src/ArduinoJson/Deserialization/Reader.hpp index e728047..b8e896b 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Deserialization/Reader.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Deserialization/Reader.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Deserialization/Readers/ArduinoStreamReader.hpp b/lib/ArduinoJson/src/ArduinoJson/Deserialization/Readers/ArduinoStreamReader.hpp index a4b1143..afa3696 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Deserialization/Readers/ArduinoStreamReader.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Deserialization/Readers/ArduinoStreamReader.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Deserialization/Readers/ArduinoStringReader.hpp b/lib/ArduinoJson/src/ArduinoJson/Deserialization/Readers/ArduinoStringReader.hpp index d55859f..da2f173 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Deserialization/Readers/ArduinoStringReader.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Deserialization/Readers/ArduinoStringReader.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Deserialization/Readers/FlashReader.hpp b/lib/ArduinoJson/src/ArduinoJson/Deserialization/Readers/FlashReader.hpp index fa8ff23..5b59b0c 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Deserialization/Readers/FlashReader.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Deserialization/Readers/FlashReader.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Deserialization/Readers/IteratorReader.hpp b/lib/ArduinoJson/src/ArduinoJson/Deserialization/Readers/IteratorReader.hpp index 5584ec5..5fc8ba5 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Deserialization/Readers/IteratorReader.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Deserialization/Readers/IteratorReader.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Deserialization/Readers/RamReader.hpp b/lib/ArduinoJson/src/ArduinoJson/Deserialization/Readers/RamReader.hpp index 4739d72..b778a24 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Deserialization/Readers/RamReader.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Deserialization/Readers/RamReader.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Deserialization/Readers/StdStreamReader.hpp b/lib/ArduinoJson/src/ArduinoJson/Deserialization/Readers/StdStreamReader.hpp index 947dd7f..5e1233b 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Deserialization/Readers/StdStreamReader.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Deserialization/Readers/StdStreamReader.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Deserialization/Readers/VariantReader.hpp b/lib/ArduinoJson/src/ArduinoJson/Deserialization/Readers/VariantReader.hpp index 92f9541..23d7260 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Deserialization/Readers/VariantReader.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Deserialization/Readers/VariantReader.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Deserialization/deserialize.hpp b/lib/ArduinoJson/src/ArduinoJson/Deserialization/deserialize.hpp index c1963a8..4c3b229 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Deserialization/deserialize.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Deserialization/deserialize.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Document/JsonDocument.hpp b/lib/ArduinoJson/src/ArduinoJson/Document/JsonDocument.hpp index 0907623..63902c4 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Document/JsonDocument.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Document/JsonDocument.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Json/EscapeSequence.hpp b/lib/ArduinoJson/src/ArduinoJson/Json/EscapeSequence.hpp index 35a99d6..687f291 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Json/EscapeSequence.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Json/EscapeSequence.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Json/JsonDeserializer.hpp b/lib/ArduinoJson/src/ArduinoJson/Json/JsonDeserializer.hpp index fb03e69..288a22c 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Json/JsonDeserializer.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Json/JsonDeserializer.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once @@ -275,13 +275,11 @@ class JsonDeserializer { if (memberFilter.allow()) { auto member = object.getMember(adaptString(key), resources_); if (!member) { - // Save key in memory pool. - auto savedKey = stringBuilder_.save(); - - // Allocate slot in object - member = object.addMember(savedKey, resources_); - if (!member) + auto keyVariant = object.addPair(&member, resources_); + if (!keyVariant) return DeserializationError::NoMemory; + + stringBuilder_.save(keyVariant); } else { member->clear(resources_); } @@ -390,7 +388,7 @@ class JsonDeserializer { if (err) return err; - variant.setOwnedString(stringBuilder_.save()); + stringBuilder_.save(&variant); return DeserializationError::Ok; } diff --git a/lib/ArduinoJson/src/ArduinoJson/Json/JsonSerializer.hpp b/lib/ArduinoJson/src/ArduinoJson/Json/JsonSerializer.hpp index da57b6b..e95bfc7 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Json/JsonSerializer.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Json/JsonSerializer.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Json/Latch.hpp b/lib/ArduinoJson/src/ArduinoJson/Json/Latch.hpp index f9d9e51..a7dcbe9 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Json/Latch.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Json/Latch.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Json/PrettyJsonSerializer.hpp b/lib/ArduinoJson/src/ArduinoJson/Json/PrettyJsonSerializer.hpp index 7915c6c..2cfd177 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Json/PrettyJsonSerializer.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Json/PrettyJsonSerializer.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Json/TextFormatter.hpp b/lib/ArduinoJson/src/ArduinoJson/Json/TextFormatter.hpp index 0fab396..91d5543 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Json/TextFormatter.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Json/TextFormatter.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Json/Utf16.hpp b/lib/ArduinoJson/src/ArduinoJson/Json/Utf16.hpp index 2111451..7f63d08 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Json/Utf16.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Json/Utf16.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Json/Utf8.hpp b/lib/ArduinoJson/src/ArduinoJson/Json/Utf8.hpp index ad659b5..8eb38e6 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Json/Utf8.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Json/Utf8.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Memory/Alignment.hpp b/lib/ArduinoJson/src/ArduinoJson/Memory/Alignment.hpp index 65d6069..e844775 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Memory/Alignment.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Memory/Alignment.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Memory/Allocator.hpp b/lib/ArduinoJson/src/ArduinoJson/Memory/Allocator.hpp index aadc368..e98c7bf 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Memory/Allocator.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Memory/Allocator.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Memory/MemoryPool.hpp b/lib/ArduinoJson/src/ArduinoJson/Memory/MemoryPool.hpp index baa988f..4663a61 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Memory/MemoryPool.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Memory/MemoryPool.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Memory/MemoryPoolList.hpp b/lib/ArduinoJson/src/ArduinoJson/Memory/MemoryPoolList.hpp index dc6503c..7da0806 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Memory/MemoryPoolList.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Memory/MemoryPoolList.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Memory/ResourceManager.hpp b/lib/ArduinoJson/src/ArduinoJson/Memory/ResourceManager.hpp index c8e0d5b..f74c91b 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Memory/ResourceManager.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Memory/ResourceManager.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Memory/ResourceManagerImpl.hpp b/lib/ArduinoJson/src/ArduinoJson/Memory/ResourceManagerImpl.hpp index 427c9ad..a701c0d 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Memory/ResourceManagerImpl.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Memory/ResourceManagerImpl.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Memory/StringBuffer.hpp b/lib/ArduinoJson/src/ArduinoJson/Memory/StringBuffer.hpp index e025966..4d5caa7 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Memory/StringBuffer.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Memory/StringBuffer.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once @@ -32,7 +32,26 @@ class StringBuffer { return node_->data; } - StringNode* save() { + JsonString str() const { + ARDUINOJSON_ASSERT(node_ != nullptr); + return JsonString(node_->data, node_->length); + } + + void save(VariantData* data) { + ARDUINOJSON_ASSERT(node_ != nullptr); + const char* s = node_->data; + if (isTinyString(s, size_)) + data->setTinyString(adaptString(s, size_)); + else + data->setOwnedString(commitStringNode()); + } + + void saveRaw(VariantData* data) { + data->setRawString(commitStringNode()); + } + + private: + StringNode* commitStringNode() { ARDUINOJSON_ASSERT(node_ != nullptr); node_->data[size_] = 0; auto node = resources_->getString(adaptString(node_->data, size_)); @@ -52,13 +71,6 @@ class StringBuffer { return node; } - JsonString str() const { - ARDUINOJSON_ASSERT(node_ != nullptr); - - return JsonString(node_->data, node_->length); - } - - private: ResourceManager* resources_; StringNode* node_ = nullptr; size_t size_ = 0; diff --git a/lib/ArduinoJson/src/ArduinoJson/Memory/StringBuilder.hpp b/lib/ArduinoJson/src/ArduinoJson/Memory/StringBuilder.hpp index e789952..db6c354 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Memory/StringBuilder.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Memory/StringBuilder.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once @@ -25,10 +25,18 @@ class StringBuilder { node_ = resources_->createString(initialCapacity); } - StringNode* save() { + void save(VariantData* variant) { + ARDUINOJSON_ASSERT(variant != nullptr); ARDUINOJSON_ASSERT(node_ != nullptr); - node_->data[size_] = 0; - StringNode* node = resources_->getString(adaptString(node_->data, size_)); + + char* p = node_->data; + if (isTinyString(p, size_)) { + variant->setTinyString(adaptString(p, size_)); + return; + } + + p[size_] = 0; + StringNode* node = resources_->getString(adaptString(p, size_)); if (!node) { node = resources_->resizeString(node_, size_); ARDUINOJSON_ASSERT(node != nullptr); // realloc to smaller can't fail @@ -37,7 +45,7 @@ class StringBuilder { } else { node->references++; } - return node; + variant->setOwnedString(node); } void append(const char* s) { diff --git a/lib/ArduinoJson/src/ArduinoJson/Memory/StringNode.hpp b/lib/ArduinoJson/src/ArduinoJson/Memory/StringNode.hpp index f60cc2e..26bd180 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Memory/StringNode.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Memory/StringNode.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Memory/StringPool.hpp b/lib/ArduinoJson/src/ArduinoJson/Memory/StringPool.hpp index 6121b29..0b71ed2 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Memory/StringPool.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Memory/StringPool.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Misc/SerializedValue.hpp b/lib/ArduinoJson/src/ArduinoJson/Misc/SerializedValue.hpp index d3cb3d3..4269192 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Misc/SerializedValue.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Misc/SerializedValue.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/MsgPack/MsgPackDeserializer.hpp b/lib/ArduinoJson/src/ArduinoJson/MsgPack/MsgPackDeserializer.hpp index 674470d..904da17 100644 --- a/lib/ArduinoJson/src/ArduinoJson/MsgPack/MsgPackDeserializer.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/MsgPack/MsgPackDeserializer.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once @@ -305,7 +305,7 @@ class MsgPackDeserializer { if (err) return err; - variant->setOwnedString(stringBuffer_.save()); + stringBuffer_.save(variant); return DeserializationError::Ok; } @@ -334,7 +334,7 @@ class MsgPackDeserializer { if (err) return err; - variant->setRawString(stringBuffer_.save()); + stringBuffer_.saveRaw(variant); return DeserializationError::Ok; } @@ -403,19 +403,16 @@ class MsgPackDeserializer { JsonString key = stringBuffer_.str(); TFilter memberFilter = filter[key.c_str()]; - VariantData* member; + VariantData* member = 0; if (memberFilter.allow()) { ARDUINOJSON_ASSERT(object != 0); - // Save key in memory pool. - auto savedKey = stringBuffer_.save(); - - member = object->addMember(savedKey, resources_); - if (!member) + auto keyVariant = object->addPair(&member, resources_); + if (!keyVariant) return DeserializationError::NoMemory; - } else { - member = 0; + + stringBuffer_.save(keyVariant); } err = parseVariant(member, memberFilter, nestingLimit.decrement()); diff --git a/lib/ArduinoJson/src/ArduinoJson/MsgPack/MsgPackSerializer.hpp b/lib/ArduinoJson/src/ArduinoJson/MsgPack/MsgPackSerializer.hpp index 4eb5d2c..43f4cd2 100644 --- a/lib/ArduinoJson/src/ArduinoJson/MsgPack/MsgPackSerializer.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/MsgPack/MsgPackSerializer.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/MsgPack/endianness.hpp b/lib/ArduinoJson/src/ArduinoJson/MsgPack/endianness.hpp index 94875cf..1328f9e 100644 --- a/lib/ArduinoJson/src/ArduinoJson/MsgPack/endianness.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/MsgPack/endianness.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/MsgPack/ieee754.hpp b/lib/ArduinoJson/src/ArduinoJson/MsgPack/ieee754.hpp index 427a23a..ad8e2f0 100644 --- a/lib/ArduinoJson/src/ArduinoJson/MsgPack/ieee754.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/MsgPack/ieee754.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Namespace.hpp b/lib/ArduinoJson/src/ArduinoJson/Namespace.hpp index da7a449..feb580a 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Namespace.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Namespace.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Numbers/FloatParts.hpp b/lib/ArduinoJson/src/ArduinoJson/Numbers/FloatParts.hpp index 536ae2a..4a06016 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Numbers/FloatParts.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Numbers/FloatParts.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Numbers/FloatTraits.hpp b/lib/ArduinoJson/src/ArduinoJson/Numbers/FloatTraits.hpp index ea99625..65df838 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Numbers/FloatTraits.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Numbers/FloatTraits.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Numbers/JsonFloat.hpp b/lib/ArduinoJson/src/ArduinoJson/Numbers/JsonFloat.hpp index e370f66..400cec4 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Numbers/JsonFloat.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Numbers/JsonFloat.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Numbers/JsonInteger.hpp b/lib/ArduinoJson/src/ArduinoJson/Numbers/JsonInteger.hpp index d65805c..f626d09 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Numbers/JsonInteger.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Numbers/JsonInteger.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Numbers/arithmeticCompare.hpp b/lib/ArduinoJson/src/ArduinoJson/Numbers/arithmeticCompare.hpp index 2cbc458..f9f30a2 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Numbers/arithmeticCompare.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Numbers/arithmeticCompare.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Numbers/convertNumber.hpp b/lib/ArduinoJson/src/ArduinoJson/Numbers/convertNumber.hpp index 0b6ffdc..e83d6ce 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Numbers/convertNumber.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Numbers/convertNumber.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Numbers/parseNumber.hpp b/lib/ArduinoJson/src/ArduinoJson/Numbers/parseNumber.hpp index 7f4b220..ab34528 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Numbers/parseNumber.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Numbers/parseNumber.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Object/JsonObject.hpp b/lib/ArduinoJson/src/ArduinoJson/Object/JsonObject.hpp index 088cea9..662851b 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Object/JsonObject.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Object/JsonObject.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Object/JsonObjectConst.hpp b/lib/ArduinoJson/src/ArduinoJson/Object/JsonObjectConst.hpp index 6a7218f..99540c4 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Object/JsonObjectConst.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Object/JsonObjectConst.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Object/JsonObjectIterator.hpp b/lib/ArduinoJson/src/ArduinoJson/Object/JsonObjectIterator.hpp index 74f75bf..90637f5 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Object/JsonObjectIterator.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Object/JsonObjectIterator.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Object/JsonPair.hpp b/lib/ArduinoJson/src/ArduinoJson/Object/JsonPair.hpp index 923bd43..f0dcb50 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Object/JsonPair.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Object/JsonPair.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Object/MemberProxy.hpp b/lib/ArduinoJson/src/ArduinoJson/Object/MemberProxy.hpp index f1e9b42..7e43d38 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Object/MemberProxy.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Object/MemberProxy.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Object/ObjectData.hpp b/lib/ArduinoJson/src/ArduinoJson/Object/ObjectData.hpp index 7290e93..9b98962 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Object/ObjectData.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Object/ObjectData.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once @@ -10,9 +10,11 @@ ARDUINOJSON_BEGIN_PRIVATE_NAMESPACE class ObjectData : public CollectionData { public: - template // also works with StringNode* + template VariantData* addMember(TAdaptedString key, ResourceManager* resources); + VariantData* addPair(VariantData** value, ResourceManager* resources); + template VariantData* getOrAddMember(TAdaptedString key, ResourceManager* resources); diff --git a/lib/ArduinoJson/src/ArduinoJson/Object/ObjectImpl.hpp b/lib/ArduinoJson/src/ArduinoJson/Object/ObjectImpl.hpp index 024d772..67677d7 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Object/ObjectImpl.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Object/ObjectImpl.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once @@ -68,6 +68,22 @@ inline VariantData* ObjectData::addMember(TAdaptedString key, return valueSlot.ptr(); } +inline VariantData* ObjectData::addPair(VariantData** value, + ResourceManager* resources) { + auto keySlot = resources->allocVariant(); + if (!keySlot) + return nullptr; + + auto valueSlot = resources->allocVariant(); + if (!valueSlot) + return nullptr; + *value = valueSlot.ptr(); + + CollectionData::appendPair(keySlot, valueSlot, resources); + + return keySlot.ptr(); +} + // Returns the size (in bytes) of an object with n members. constexpr size_t sizeofObject(size_t n) { return 2 * n * ResourceManager::slotSize; diff --git a/lib/ArduinoJson/src/ArduinoJson/Polyfills/alias_cast.hpp b/lib/ArduinoJson/src/ArduinoJson/Polyfills/alias_cast.hpp index 1dec0a0..9529b05 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Polyfills/alias_cast.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Polyfills/alias_cast.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Polyfills/assert.hpp b/lib/ArduinoJson/src/ArduinoJson/Polyfills/assert.hpp index a831559..e7d42a7 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Polyfills/assert.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Polyfills/assert.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Polyfills/attributes.hpp b/lib/ArduinoJson/src/ArduinoJson/Polyfills/attributes.hpp index 268026f..99e1b33 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Polyfills/attributes.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Polyfills/attributes.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Polyfills/ctype.hpp b/lib/ArduinoJson/src/ArduinoJson/Polyfills/ctype.hpp index 294e324..afb8e84 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Polyfills/ctype.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Polyfills/ctype.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Polyfills/integer.hpp b/lib/ArduinoJson/src/ArduinoJson/Polyfills/integer.hpp index c56e1e9..6dded6f 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Polyfills/integer.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Polyfills/integer.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Polyfills/limits.hpp b/lib/ArduinoJson/src/ArduinoJson/Polyfills/limits.hpp index cb07209..9e87bbd 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Polyfills/limits.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Polyfills/limits.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Polyfills/math.hpp b/lib/ArduinoJson/src/ArduinoJson/Polyfills/math.hpp index 95a74f6..78375fd 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Polyfills/math.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Polyfills/math.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Polyfills/mpl/max.hpp b/lib/ArduinoJson/src/ArduinoJson/Polyfills/mpl/max.hpp index 89a3179..bf061dd 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Polyfills/mpl/max.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Polyfills/mpl/max.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Polyfills/pgmspace.hpp b/lib/ArduinoJson/src/ArduinoJson/Polyfills/pgmspace.hpp index d65de49..48df9e2 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Polyfills/pgmspace.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Polyfills/pgmspace.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Polyfills/pgmspace_generic.hpp b/lib/ArduinoJson/src/ArduinoJson/Polyfills/pgmspace_generic.hpp index 9104ef2..8ee166d 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Polyfills/pgmspace_generic.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Polyfills/pgmspace_generic.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Polyfills/preprocessor.hpp b/lib/ArduinoJson/src/ArduinoJson/Polyfills/preprocessor.hpp index ca565f7..8402cfd 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Polyfills/preprocessor.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Polyfills/preprocessor.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits.hpp b/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits.hpp index 471d352..a4dd1d4 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/conditional.hpp b/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/conditional.hpp index 75ebdd4..d699b6b 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/conditional.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/conditional.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/decay.hpp b/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/decay.hpp index 29b4b6e..9a1075c 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/decay.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/decay.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/declval.hpp b/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/declval.hpp index 2fd8e91..b16b575 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/declval.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/declval.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/enable_if.hpp b/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/enable_if.hpp index f1184f2..8fb8af4 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/enable_if.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/enable_if.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/function_traits.hpp b/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/function_traits.hpp index 3b79873..9d95741 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/function_traits.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/function_traits.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/integral_constant.hpp b/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/integral_constant.hpp index e263523..cc893d7 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/integral_constant.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/integral_constant.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_array.hpp b/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_array.hpp index 17a4596..e259b2d 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_array.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_array.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_base_of.hpp b/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_base_of.hpp index 8cb3c9d..5d93d78 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_base_of.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_base_of.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_class.hpp b/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_class.hpp index 2e36b56..3946e59 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_class.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_class.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_const.hpp b/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_const.hpp index 2adc86a..b8e848f 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_const.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_const.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_convertible.hpp b/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_convertible.hpp index e906ab7..e48b353 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_convertible.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_convertible.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_enum.hpp b/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_enum.hpp index 58a05ba..73a721b 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_enum.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_enum.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_floating_point.hpp b/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_floating_point.hpp index c84012b..2cba9e7 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_floating_point.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_floating_point.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_integral.hpp b/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_integral.hpp index e12b228..08e4c47 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_integral.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_integral.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_pointer.hpp b/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_pointer.hpp index 0d3b1d1..5a5e7ee 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_pointer.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_pointer.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_same.hpp b/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_same.hpp index 5e28fb7..fe1dad8 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_same.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_same.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_signed.hpp b/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_signed.hpp index f5b503b..25004e3 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_signed.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_signed.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_unsigned.hpp b/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_unsigned.hpp index 6ac6117..2665c88 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_unsigned.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_unsigned.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/make_unsigned.hpp b/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/make_unsigned.hpp index 6ea6df4..016e716 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/make_unsigned.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/make_unsigned.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/remove_const.hpp b/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/remove_const.hpp index 22406e5..090f849 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/remove_const.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/remove_const.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/remove_cv.hpp b/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/remove_cv.hpp index 67d75c6..114696e 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/remove_cv.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/remove_cv.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/remove_reference.hpp b/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/remove_reference.hpp index 60e31b0..c3894c0 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/remove_reference.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/remove_reference.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/type_identity.hpp b/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/type_identity.hpp index ea899f6..6325208 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/type_identity.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/type_identity.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/void_t.hpp b/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/void_t.hpp index 7222025..c9bca15 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/void_t.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/void_t.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Polyfills/utility.hpp b/lib/ArduinoJson/src/ArduinoJson/Polyfills/utility.hpp index caac765..afbac7c 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Polyfills/utility.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Polyfills/utility.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Serialization/CountingDecorator.hpp b/lib/ArduinoJson/src/ArduinoJson/Serialization/CountingDecorator.hpp index e70ea1b..2e153be 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Serialization/CountingDecorator.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Serialization/CountingDecorator.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Serialization/Writer.hpp b/lib/ArduinoJson/src/ArduinoJson/Serialization/Writer.hpp index caea19f..f736d86 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Serialization/Writer.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Serialization/Writer.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Serialization/Writers/ArduinoStringWriter.hpp b/lib/ArduinoJson/src/ArduinoJson/Serialization/Writers/ArduinoStringWriter.hpp index d3ebd17..4061043 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Serialization/Writers/ArduinoStringWriter.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Serialization/Writers/ArduinoStringWriter.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Serialization/Writers/DummyWriter.hpp b/lib/ArduinoJson/src/ArduinoJson/Serialization/Writers/DummyWriter.hpp index 7492e21..a308a4b 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Serialization/Writers/DummyWriter.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Serialization/Writers/DummyWriter.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Serialization/Writers/PrintWriter.hpp b/lib/ArduinoJson/src/ArduinoJson/Serialization/Writers/PrintWriter.hpp index 55bfe00..a3fe499 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Serialization/Writers/PrintWriter.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Serialization/Writers/PrintWriter.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Serialization/Writers/StaticStringWriter.hpp b/lib/ArduinoJson/src/ArduinoJson/Serialization/Writers/StaticStringWriter.hpp index 042aac7..f9407c3 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Serialization/Writers/StaticStringWriter.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Serialization/Writers/StaticStringWriter.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Serialization/Writers/StdStreamWriter.hpp b/lib/ArduinoJson/src/ArduinoJson/Serialization/Writers/StdStreamWriter.hpp index abb15a5..44758d4 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Serialization/Writers/StdStreamWriter.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Serialization/Writers/StdStreamWriter.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Serialization/Writers/StdStringWriter.hpp b/lib/ArduinoJson/src/ArduinoJson/Serialization/Writers/StdStringWriter.hpp index 7acd24c..e2ffc72 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Serialization/Writers/StdStringWriter.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Serialization/Writers/StdStringWriter.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Serialization/measure.hpp b/lib/ArduinoJson/src/ArduinoJson/Serialization/measure.hpp index fd2acf2..62d8fce 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Serialization/measure.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Serialization/measure.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Serialization/serialize.hpp b/lib/ArduinoJson/src/ArduinoJson/Serialization/serialize.hpp index dc2f0fa..ad93ade 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Serialization/serialize.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Serialization/serialize.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Strings/Adapters/FlashString.hpp b/lib/ArduinoJson/src/ArduinoJson/Strings/Adapters/FlashString.hpp index 29ca1c3..3658e8e 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Strings/Adapters/FlashString.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Strings/Adapters/FlashString.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Strings/Adapters/RamString.hpp b/lib/ArduinoJson/src/ArduinoJson/Strings/Adapters/RamString.hpp index 5477b23..c269ffb 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Strings/Adapters/RamString.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Strings/Adapters/RamString.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once @@ -76,6 +76,16 @@ struct StringAdapter::value>> { } }; +template +struct StringAdapter::value>> { + using AdaptedString = RamString; + + static AdaptedString adapt(const TChar* p) { + auto str = reinterpret_cast(p); + return AdaptedString(str, str ? ::strlen(str) : 0); + } +}; + template struct StringAdapter { using AdaptedString = RamString; @@ -90,8 +100,9 @@ struct StringAdapter::value>> { using AdaptedString = RamString; static AdaptedString adapt(const TChar* p) { + ARDUINOJSON_ASSERT(p); auto str = reinterpret_cast(p); - return AdaptedString(str, str ? ::strlen(str) : 0); + return AdaptedString(str, ::strlen(str)); } }; diff --git a/lib/ArduinoJson/src/ArduinoJson/Strings/Adapters/StringObject.hpp b/lib/ArduinoJson/src/ArduinoJson/Strings/Adapters/StringObject.hpp index 1547ab9..43bd330 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Strings/Adapters/StringObject.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Strings/Adapters/StringObject.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Strings/IsString.hpp b/lib/ArduinoJson/src/ArduinoJson/Strings/IsString.hpp index a71655d..094f53b 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Strings/IsString.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Strings/IsString.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Strings/JsonString.hpp b/lib/ArduinoJson/src/ArduinoJson/Strings/JsonString.hpp index 76011da..98bae43 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Strings/JsonString.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Strings/JsonString.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Strings/StringAdapter.hpp b/lib/ArduinoJson/src/ArduinoJson/Strings/StringAdapter.hpp index cd19e41..a31d2a5 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Strings/StringAdapter.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Strings/StringAdapter.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Strings/StringAdapters.hpp b/lib/ArduinoJson/src/ArduinoJson/Strings/StringAdapters.hpp index e8ff181..e0ae9f3 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Strings/StringAdapters.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Strings/StringAdapters.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Strings/StringTraits.hpp b/lib/ArduinoJson/src/ArduinoJson/Strings/StringTraits.hpp index 797762b..bd1a50b 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Strings/StringTraits.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Strings/StringTraits.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Variant/Converter.hpp b/lib/ArduinoJson/src/ArduinoJson/Variant/Converter.hpp index 0275655..07f6a51 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Variant/Converter.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Variant/Converter.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Variant/ConverterImpl.hpp b/lib/ArduinoJson/src/ArduinoJson/Variant/ConverterImpl.hpp index 296bf55..6c5fcda 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Variant/ConverterImpl.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Variant/ConverterImpl.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once @@ -230,9 +230,9 @@ class StringBuilderPrint : public Print { copier_.startString(); } - StringNode* save() { + void save(VariantData* data) { ARDUINOJSON_ASSERT(!overflowed()); - return copier_.save(); + copier_.save(data); } size_t write(uint8_t c) { @@ -268,7 +268,7 @@ inline void convertToJson(const ::Printable& src, JsonVariant dst) { src.printTo(print); if (print.overflowed()) return; - data->setOwnedString(print.save()); + print.save(data); } #endif diff --git a/lib/ArduinoJson/src/ArduinoJson/Variant/JsonVariant.hpp b/lib/ArduinoJson/src/ArduinoJson/Variant/JsonVariant.hpp index 25fb3f2..aed1ba9 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Variant/JsonVariant.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Variant/JsonVariant.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Variant/JsonVariantConst.hpp b/lib/ArduinoJson/src/ArduinoJson/Variant/JsonVariantConst.hpp index b1eb66e..4c96059 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Variant/JsonVariantConst.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Variant/JsonVariantConst.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Variant/JsonVariantCopier.hpp b/lib/ArduinoJson/src/ArduinoJson/Variant/JsonVariantCopier.hpp index 659069d..6875c9a 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Variant/JsonVariantCopier.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Variant/JsonVariantCopier.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Variant/JsonVariantVisitor.hpp b/lib/ArduinoJson/src/ArduinoJson/Variant/JsonVariantVisitor.hpp index 6069b6e..28f99ed 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Variant/JsonVariantVisitor.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Variant/JsonVariantVisitor.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Variant/VariantAttorney.hpp b/lib/ArduinoJson/src/ArduinoJson/Variant/VariantAttorney.hpp index b75eb38..d97641b 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Variant/VariantAttorney.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Variant/VariantAttorney.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Variant/VariantCompare.hpp b/lib/ArduinoJson/src/ArduinoJson/Variant/VariantCompare.hpp index 03e2227..5f56016 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Variant/VariantCompare.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Variant/VariantCompare.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Variant/VariantContent.hpp b/lib/ArduinoJson/src/ArduinoJson/Variant/VariantContent.hpp index cae3f20..d6ee6c7 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Variant/VariantContent.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Variant/VariantContent.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once @@ -24,6 +24,7 @@ enum class VariantTypeBits : uint8_t { enum class VariantType : uint8_t { Null = 0, // 0000 0000 + TinyString = 0x02, // 0000 0010 RawString = 0x03, // 0000 0011 LinkedString = 0x04, // 0000 0100 OwnedString = 0x05, // 0000 0101 @@ -46,6 +47,8 @@ inline bool operator&(VariantType type, VariantTypeBits bit) { return (uint8_t(type) & uint8_t(bit)) != 0; } +const size_t tinyStringMaxLength = 3; + union VariantContent { VariantContent() {} @@ -61,6 +64,7 @@ union VariantContent { CollectionData asCollection; const char* asLinkedString; struct StringNode* asOwnedString; + char asTinyString[tinyStringMaxLength + 1]; }; #if ARDUINOJSON_USE_EXTENSIONS diff --git a/lib/ArduinoJson/src/ArduinoJson/Variant/VariantData.hpp b/lib/ArduinoJson/src/ArduinoJson/Variant/VariantData.hpp index ba1bef8..6b0d474 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Variant/VariantData.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Variant/VariantData.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once @@ -17,6 +17,16 @@ ARDUINOJSON_BEGIN_PRIVATE_NAMESPACE template T parseNumber(const char* s); +template +static bool isTinyString(const T& s, size_t n) { + if (n > tinyStringMaxLength) + return false; + bool containsNul = false; + for (uint8_t i = 0; i < uint8_t(n); i++) + containsNul |= !s[i]; + return !containsNul; +} + class VariantData { VariantContent content_; // must be first to allow cast from array to variant VariantType type_; @@ -63,6 +73,9 @@ class VariantData { case VariantType::Object: return visit.visit(content_.asObject); + case VariantType::TinyString: + return visit.visit(JsonString(content_.asTinyString)); + case VariantType::LinkedString: return visit.visit(JsonString(content_.asLinkedString, true)); @@ -185,6 +198,7 @@ class VariantData { #else (void)resources; // silence warning #endif + const char* str = nullptr; switch (type_) { case VariantType::Boolean: return static_cast(content_.asBoolean); @@ -198,9 +212,15 @@ class VariantData { case VariantType::Int64: return static_cast(extension->asInt64); #endif + case VariantType::TinyString: + str = content_.asTinyString; + break; case VariantType::LinkedString: + str = content_.asLinkedString; + break; case VariantType::OwnedString: - return parseNumber(content_.asOwnedString->data); + str = content_.asOwnedString->data; + break; case VariantType::Float: return static_cast(content_.asFloat); #if ARDUINOJSON_USE_DOUBLE @@ -208,8 +228,11 @@ class VariantData { return static_cast(extension->asDouble); #endif default: - return 0; + return 0.0; } + + ARDUINOJSON_ASSERT(str != nullptr); + return parseNumber(str); } template @@ -220,6 +243,7 @@ class VariantData { #else (void)resources; // silence warning #endif + const char* str = nullptr; switch (type_) { case VariantType::Boolean: return content_.asBoolean; @@ -233,10 +257,15 @@ class VariantData { case VariantType::Int64: return convertNumber(extension->asInt64); #endif + case VariantType::TinyString: + str = content_.asTinyString; + break; case VariantType::LinkedString: - return parseNumber(content_.asLinkedString); + str = content_.asLinkedString; + break; case VariantType::OwnedString: - return parseNumber(content_.asOwnedString->data); + str = content_.asOwnedString->data; + break; case VariantType::Float: return convertNumber(content_.asFloat); #if ARDUINOJSON_USE_DOUBLE @@ -246,6 +275,9 @@ class VariantData { default: return 0; } + + ARDUINOJSON_ASSERT(str != nullptr); + return parseNumber(str); } ObjectData* asObject() { @@ -268,6 +300,8 @@ class VariantData { JsonString asString() const { switch (type_) { + case VariantType::TinyString: + return JsonString(content_.asTinyString); case VariantType::LinkedString: return JsonString(content_.asLinkedString, true); case VariantType::OwnedString: @@ -382,7 +416,8 @@ class VariantData { bool isString() const { return type_ == VariantType::LinkedString || - type_ == VariantType::OwnedString; + type_ == VariantType::OwnedString || + type_ == VariantType::TinyString; } size_t nesting(const ResourceManager* resources) const { @@ -475,11 +510,6 @@ class VariantData { template bool setString(TAdaptedString value, ResourceManager* resources); - bool setString(StringNode* s, ResourceManager*) { - setOwnedString(s); - return true; - } - template static void setString(VariantData* var, TAdaptedString value, ResourceManager* resources) { @@ -496,6 +526,23 @@ class VariantData { content_.asLinkedString = s; } + template + void setTinyString(const TAdaptedString& s) { + ARDUINOJSON_ASSERT(type_ == VariantType::Null); // must call clear() first + ARDUINOJSON_ASSERT(s.size() <= tinyStringMaxLength); + + type_ = VariantType::TinyString; + + auto n = uint8_t(s.size()); + for (uint8_t i = 0; i < n; i++) { + char c = s[i]; + ARDUINOJSON_ASSERT(c != 0); // no NUL in tiny string + content_.asTinyString[i] = c; + } + + content_.asTinyString[n] = 0; + } + void setOwnedString(StringNode* s) { ARDUINOJSON_ASSERT(type_ == VariantType::Null); // must call clear() first ARDUINOJSON_ASSERT(s); diff --git a/lib/ArduinoJson/src/ArduinoJson/Variant/VariantDataVisitor.hpp b/lib/ArduinoJson/src/ArduinoJson/Variant/VariantDataVisitor.hpp index 662ab13..7df6187 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Variant/VariantDataVisitor.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Variant/VariantDataVisitor.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Variant/VariantImpl.hpp b/lib/ArduinoJson/src/ArduinoJson/Variant/VariantImpl.hpp index 8e5b253..98289ed 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Variant/VariantImpl.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Variant/VariantImpl.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once @@ -31,6 +31,11 @@ inline bool VariantData::setString(TAdaptedString value, return true; } + if (isTinyString(value, value.size())) { + setTinyString(value); + return true; + } + auto dup = resources->saveString(value); if (dup) { setOwnedString(dup); diff --git a/lib/ArduinoJson/src/ArduinoJson/Variant/VariantOperators.hpp b/lib/ArduinoJson/src/ArduinoJson/Variant/VariantOperators.hpp index d17e7cb..30bbd66 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Variant/VariantOperators.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Variant/VariantOperators.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Variant/VariantRefBase.hpp b/lib/ArduinoJson/src/ArduinoJson/Variant/VariantRefBase.hpp index 544fe42..975c961 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Variant/VariantRefBase.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Variant/VariantRefBase.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Variant/VariantRefBaseImpl.hpp b/lib/ArduinoJson/src/ArduinoJson/Variant/VariantRefBaseImpl.hpp index 1c87cc1..da1b1e6 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Variant/VariantRefBaseImpl.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Variant/VariantRefBaseImpl.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Variant/VariantTag.hpp b/lib/ArduinoJson/src/ArduinoJson/Variant/VariantTag.hpp index 23f360f..a476c30 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Variant/VariantTag.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Variant/VariantTag.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/Variant/VariantTo.hpp b/lib/ArduinoJson/src/ArduinoJson/Variant/VariantTo.hpp index f159aef..928d459 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Variant/VariantTo.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Variant/VariantTo.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson/compatibility.hpp b/lib/ArduinoJson/src/ArduinoJson/compatibility.hpp index 6b99c42..2e83e6d 100644 --- a/lib/ArduinoJson/src/ArduinoJson/compatibility.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/compatibility.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License // // clang-format off diff --git a/lib/ArduinoJson/src/ArduinoJson/version.hpp b/lib/ArduinoJson/src/ArduinoJson/version.hpp index 0d8cecb..13c9296 100644 --- a/lib/ArduinoJson/src/ArduinoJson/version.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/version.hpp @@ -1,11 +1,11 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once -#define ARDUINOJSON_VERSION "7.3.0" +#define ARDUINOJSON_VERSION "7.4.1" #define ARDUINOJSON_VERSION_MAJOR 7 -#define ARDUINOJSON_VERSION_MINOR 3 -#define ARDUINOJSON_VERSION_REVISION 0 -#define ARDUINOJSON_VERSION_MACRO V730 +#define ARDUINOJSON_VERSION_MINOR 4 +#define ARDUINOJSON_VERSION_REVISION 1 +#define ARDUINOJSON_VERSION_MACRO V741 diff --git a/lib/ArduinoJson/src/CMakeLists.txt b/lib/ArduinoJson/src/CMakeLists.txt index cc782e7..841185d 100644 --- a/lib/ArduinoJson/src/CMakeLists.txt +++ b/lib/ArduinoJson/src/CMakeLists.txt @@ -1,5 +1,5 @@ # ArduinoJson - https://arduinojson.org -# Copyright © 2014-2024, Benoit BLANCHON +# Copyright © 2014-2025, Benoit BLANCHON # MIT License # I have no idea what this is about, I simply followed the instructions from: