Extract setString()

Before: 9802, 8736, 9630, 12588, 9910
After:  9802, 8718, 9630, 12606, 9880
Target: 9800, 8458, 9634, 12290, 9702
This commit is contained in:
Benoit Blanchon
2025-09-17 22:12:56 +02:00
parent 7585c0f671
commit bc8dcff2ab
3 changed files with 14 additions and 8 deletions

View File

@@ -61,8 +61,7 @@ inline VariantData* ObjectImpl::addMember(TAdaptedString key) {
if (!valueSlot)
return nullptr;
VariantImpl keyImpl(keySlot.ptr(), resources_);
if (!keyImpl.setString(key))
if (!VariantImpl::setString(key, keySlot.ptr(), resources_))
return nullptr;
CollectionImpl::appendPair(keySlot, valueSlot);

View File

@@ -480,7 +480,14 @@ class VariantImpl {
void setRawString(SerializedValue<T> value);
template <typename TAdaptedString>
bool setString(TAdaptedString value);
bool setString(TAdaptedString value) {
if (!data_)
return false;
return setString(value, data_, resources_);
}
template <typename TAdaptedString>
static bool setString(TAdaptedString value, VariantData*, ResourceManager*);
size_t size() {
if (isObject())

View File

@@ -19,11 +19,11 @@ inline void VariantImpl::setRawString(SerializedValue<T> value) {
}
template <typename TAdaptedString>
inline bool VariantImpl::setString(TAdaptedString value) {
ARDUINOJSON_ASSERT(isNull()); // must call clear() first
if (!data_)
return false;
inline bool VariantImpl::setString(TAdaptedString value, VariantData* data_,
ResourceManager* resources_) {
ARDUINOJSON_ASSERT(data_ != nullptr);
ARDUINOJSON_ASSERT(data_->type == VariantType::Null);
ARDUINOJSON_ASSERT(resources_ != nullptr);
if (value.isNull())
return false;