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; bool isKey = true;
for (auto it = createIterator(); !it.done(); it.next(resources_)) { for (auto it = createIterator(); !it.done(); it.next(resources_)) {
VariantImpl variant(it.data(), 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; return it;
isKey = !isKey; isKey = !isKey;
} }

View File

@@ -316,7 +316,16 @@ class VariantImpl {
} }
JsonString asString() const { 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: case VariantType::TinyString:
return JsonString(data_->content.asTinyString); return JsonString(data_->content.asTinyString);
case VariantType::LongString: case VariantType::LongString: