From 03414a530132807ab37fb14e567eadc04790237a Mon Sep 17 00:00:00 2001 From: Benoit Blanchon Date: Wed, 30 Mar 2022 21:43:55 +0200 Subject: [PATCH] getMember() (6764,5602) --- src/ArduinoJson/Variant/VariantData.hpp | 4 ++-- src/ArduinoJson/Variant/VariantImpl.hpp | 7 +++++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/ArduinoJson/Variant/VariantData.hpp b/src/ArduinoJson/Variant/VariantData.hpp index 767e1a49..e99400fd 100644 --- a/src/ArduinoJson/Variant/VariantData.hpp +++ b/src/ArduinoJson/Variant/VariantData.hpp @@ -291,8 +291,8 @@ class VariantData { } template - VariantData *getMember(TAdaptedString key) const { // P+4 G+0 - const CollectionData *col = resolve()->asObject(); + VariantData *getMember(TAdaptedString key) const { + const CollectionData *col = asObject(); return col ? col->getMember(key) : 0; } diff --git a/src/ArduinoJson/Variant/VariantImpl.hpp b/src/ArduinoJson/Variant/VariantImpl.hpp index 13a02f67..9be59a74 100644 --- a/src/ArduinoJson/Variant/VariantImpl.hpp +++ b/src/ArduinoJson/Variant/VariantImpl.hpp @@ -143,13 +143,16 @@ inline VariantRef VariantRef::getOrAddElement(size_t index) const { template inline VariantRef VariantRef::getMember(TChar *key) const { - return VariantRef(_pool, _data != 0 ? _data->getMember(adaptString(key)) : 0); + return VariantRef( // TODO: this returns a mutable reference to a linked + // object + _pool, _data != 0 ? _data->resolve()->getMember(adaptString(key)) : 0); } template inline typename enable_if::value, VariantRef>::type VariantRef::getMember(const TString &key) const { - return VariantRef(_pool, _data != 0 ? _data->getMember(adaptString(key)) : 0); + return VariantRef( // TODO: idem + _pool, _data != 0 ? _data->resolve()->getMember(adaptString(key)) : 0); } template