Reduce code size

This commit is contained in:
Benoit Blanchon
2025-02-27 11:06:33 +01:00
parent 67dd3120e6
commit cb1dcfa5e4
2 changed files with 18 additions and 5 deletions

View File

@ -5,6 +5,7 @@ HEAD
----
* Fix conversion from static string to number
* Slightly reduce code size
v7.3.0 (2024-12-29)
------

View File

@ -185,6 +185,7 @@ class VariantData {
#else
(void)resources; // silence warning
#endif
const char* str = nullptr;
switch (type_) {
case VariantType::Boolean:
return static_cast<T>(content_.asBoolean);
@ -199,9 +200,11 @@ class VariantData {
return static_cast<T>(extension->asInt64);
#endif
case VariantType::LinkedString:
return parseNumber<T>(content_.asLinkedString);
str = content_.asLinkedString;
break;
case VariantType::OwnedString:
return parseNumber<T>(content_.asOwnedString->data);
str = content_.asOwnedString->data;
break;
case VariantType::Float:
return static_cast<T>(content_.asFloat);
#if ARDUINOJSON_USE_DOUBLE
@ -209,8 +212,11 @@ class VariantData {
return static_cast<T>(extension->asDouble);
#endif
default:
return 0;
return 0.0;
}
ARDUINOJSON_ASSERT(str != nullptr);
return parseNumber<T>(str);
}
template <typename T>
@ -221,6 +227,7 @@ class VariantData {
#else
(void)resources; // silence warning
#endif
const char* str = nullptr;
switch (type_) {
case VariantType::Boolean:
return content_.asBoolean;
@ -235,9 +242,11 @@ class VariantData {
return convertNumber<T>(extension->asInt64);
#endif
case VariantType::LinkedString:
return parseNumber<T>(content_.asLinkedString);
str = content_.asLinkedString;
break;
case VariantType::OwnedString:
return parseNumber<T>(content_.asOwnedString->data);
str = content_.asOwnedString->data;
break;
case VariantType::Float:
return convertNumber<T>(content_.asFloat);
#if ARDUINOJSON_USE_DOUBLE
@ -247,6 +256,9 @@ class VariantData {
default:
return 0;
}
ARDUINOJSON_ASSERT(str != nullptr);
return parseNumber<T>(str);
}
ObjectData* asObject() {