diff --git a/Software/src/lib/bblanchon-ArduinoJson/ArduinoJson.h b/Software/src/lib/bblanchon-ArduinoJson/ArduinoJson.h index 644d19c6..379eeea3 100644 --- a/Software/src/lib/bblanchon-ArduinoJson/ArduinoJson.h +++ b/Software/src/lib/bblanchon-ArduinoJson/ArduinoJson.h @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2024, Benoit BLANCHON +// Copyright © 2014-2025, Benoit BLANCHON // MIT License #pragma once @@ -239,11 +239,11 @@ #define ARDUINOJSON_BIN2ALPHA_1111() P #define ARDUINOJSON_BIN2ALPHA_(A, B, C, D) ARDUINOJSON_BIN2ALPHA_##A##B##C##D() #define ARDUINOJSON_BIN2ALPHA(A, B, C, D) ARDUINOJSON_BIN2ALPHA_(A, B, C, D) -#define ARDUINOJSON_VERSION "7.3.0" +#define ARDUINOJSON_VERSION "7.3.1" #define ARDUINOJSON_VERSION_MAJOR 7 #define ARDUINOJSON_VERSION_MINOR 3 -#define ARDUINOJSON_VERSION_REVISION 0 -#define ARDUINOJSON_VERSION_MACRO V730 +#define ARDUINOJSON_VERSION_REVISION 1 +#define ARDUINOJSON_VERSION_MACRO V731 #ifndef ARDUINOJSON_VERSION_NAMESPACE # define ARDUINOJSON_VERSION_NAMESPACE \ ARDUINOJSON_CONCAT5( \ @@ -1029,8 +1029,9 @@ template 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)); } }; template @@ -2243,6 +2244,7 @@ class VariantData { #else (void)resources; // silence warning #endif + const char* str = nullptr; switch (type_) { case VariantType::Boolean: return static_cast(content_.asBoolean); @@ -2257,8 +2259,11 @@ class VariantData { return static_cast(extension->asInt64); #endif 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 @@ -2266,8 +2271,10 @@ class VariantData { return static_cast(extension->asDouble); #endif default: - return 0; + return 0.0; } + ARDUINOJSON_ASSERT(str != nullptr); + return parseNumber(str); } template T asIntegral(const ResourceManager* resources) const { @@ -2277,6 +2284,7 @@ class VariantData { #else (void)resources; // silence warning #endif + const char* str = nullptr; switch (type_) { case VariantType::Boolean: return content_.asBoolean; @@ -2291,9 +2299,11 @@ class VariantData { return convertNumber(extension->asInt64); #endif 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 @@ -2303,6 +2313,8 @@ class VariantData { default: return 0; } + ARDUINOJSON_ASSERT(str != nullptr); + return parseNumber(str); } ObjectData* asObject() { return isObject() ? &content_.asObject : 0;