Extract asString()

Before: 9874, 8736, 9694, 12634, 9970
After:  9802, 8736, 9630, 12588, 9910
Target: 9800, 8458, 9634, 12290, 9702
This commit is contained in:
Benoit Blanchon
2025-09-17 22:02:45 +02:00
parent 8af294078f
commit 7585c0f671
2 changed files with 12 additions and 2 deletions

View File

@@ -34,7 +34,8 @@ inline ObjectImpl::iterator ObjectImpl::findKey(TAdaptedString key) const {
bool isKey = true;
for (auto it = createIterator(); !it.done(); it.next(resources_)) {
VariantImpl variant(it.data(), resources_);
if (isKey && stringEquals(key, adaptString(variant.asString())))
if (isKey && stringEquals(key, adaptString(VariantImpl::asString(
it.data(), resources_))))
return it;
isKey = !isKey;
}

View File

@@ -316,7 +316,16 @@ class VariantImpl {
}
JsonString asString() const {
switch (type()) {
if (!data_)
return JsonString();
return asString(data_, resources_);
}
static JsonString asString(VariantData* data_, ResourceManager* resources_) {
ARDUINOJSON_ASSERT(data_ != nullptr);
ARDUINOJSON_ASSERT(resources_ != nullptr);
switch (data_->type) {
case VariantType::TinyString:
return JsonString(data_->content.asTinyString);
case VariantType::LongString: