diff --git a/src/ArduinoJson/Variant/VariantData.hpp b/src/ArduinoJson/Variant/VariantData.hpp index 2d424db6..767e1a49 100644 --- a/src/ArduinoJson/Variant/VariantData.hpp +++ b/src/ArduinoJson/Variant/VariantData.hpp @@ -277,8 +277,8 @@ class VariantData { return _content.asCollection.addElement(pool); } - VariantData *getElement(size_t index) const { // P+4 G+0 - const CollectionData *col = resolve()->asArray(); + VariantData *getElement(size_t index) const { + const CollectionData *col = asArray(); return col ? col->getElement(index) : 0; } diff --git a/src/ArduinoJson/Variant/VariantImpl.hpp b/src/ArduinoJson/Variant/VariantImpl.hpp index c673ef7b..13a02f67 100644 --- a/src/ArduinoJson/Variant/VariantImpl.hpp +++ b/src/ArduinoJson/Variant/VariantImpl.hpp @@ -133,7 +133,8 @@ inline VariantRef VariantRef::addElement() const { } inline VariantRef VariantRef::getElement(size_t index) const { - return VariantRef(_pool, _data != 0 ? _data->getElement(index) : 0); + return VariantRef(_pool, + _data != 0 ? _data->resolve()->getElement(index) : 0); } inline VariantRef VariantRef::getOrAddElement(size_t index) const {