Skip to content

Commit 0e136aa

Browse files
committed
Extract toObject()
Before: 9884, 8796, 9702, 12668, 9964 After: 9874, 8796, 9694, 12634, 9970 Target: 9800, 8458, 9634, 12290, 9702
1 parent f72526c commit 0e136aa

File tree

3 files changed

+10
-4
lines changed

3 files changed

+10
-4
lines changed

src/ArduinoJson/Json/JsonDeserializer.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,8 +78,8 @@ class JsonDeserializer {
7878

7979
case '{':
8080
if (filter.allowObject())
81-
return parseObject(VariantImpl(variant, resources_).toObject(),
82-
filter, nestingLimit);
81+
return parseObject(VariantImpl::toObject(variant, resources_), filter,
82+
nestingLimit);
8383
else
8484
return skipObject(nestingLimit);
8585

src/ArduinoJson/MsgPack/MsgPackDeserializer.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -388,7 +388,7 @@ class MsgPackDeserializer {
388388
ObjectImpl object;
389389
if (filter.allowObject()) {
390390
ARDUINOJSON_ASSERT(variant != 0);
391-
object = VariantImpl(variant, resources_).toObject();
391+
object = VariantImpl::toObject(variant, resources_);
392392
}
393393

394394
for (; n; --n) {

src/ArduinoJson/Variant/VariantData.hpp

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -493,9 +493,15 @@ class VariantImpl {
493493
}
494494

495495
ObjectImpl toObject() {
496-
ARDUINOJSON_ASSERT(type() == VariantType::Null); // must call clear() first
497496
if (!data_)
498497
return ObjectImpl();
498+
return toObject(data_, resources_);
499+
}
500+
501+
static ObjectImpl toObject(VariantData* data_, ResourceManager* resources_) {
502+
ARDUINOJSON_ASSERT(data_ != nullptr);
503+
ARDUINOJSON_ASSERT(data_->type == VariantType::Null);
504+
ARDUINOJSON_ASSERT(resources_ != nullptr);
499505
data_->type = VariantType::Object;
500506
return ObjectImpl(new (&data_->content.asCollection) CollectionData(),
501507
resources_);

0 commit comments

Comments
 (0)