diff --git a/src/ArduinoJson/Array/ArrayImpl.hpp b/src/ArduinoJson/Array/ArrayImpl.hpp index d2467fb5..796d5be4 100644 --- a/src/ArduinoJson/Array/ArrayImpl.hpp +++ b/src/ArduinoJson/Array/ArrayImpl.hpp @@ -40,7 +40,7 @@ inline VariantData* VariantImpl::getOrAddElement(size_t index) { } if (it.done()) index++; - VariantData* element = it.data(); + VariantData* element = it->data(); while (index > 0) { element = addElement(); if (!element) @@ -51,7 +51,7 @@ inline VariantData* VariantImpl::getOrAddElement(size_t index) { } inline VariantData* VariantImpl::getElement(size_t index) const { - return at(index).data(); + return at(index)->data(); } inline void VariantImpl::removeElement(iterator it) { diff --git a/src/ArduinoJson/Collection/CollectionImpl.hpp b/src/ArduinoJson/Collection/CollectionImpl.hpp index 29eecbe7..3433fe08 100644 --- a/src/ArduinoJson/Collection/CollectionImpl.hpp +++ b/src/ArduinoJson/Collection/CollectionImpl.hpp @@ -65,7 +65,7 @@ inline void VariantImpl::removeOne(iterator it) { if (it.done()) return; auto coll = getCollectionData(); - auto curr = it.data(); + auto curr = it->data(); auto prev = getPreviousSlot(curr); auto next = curr->next; if (prev) @@ -74,14 +74,14 @@ inline void VariantImpl::removeOne(iterator it) { coll->head = next; if (next == NULL_SLOT) coll->tail = prev.id(); - freeVariant({it.data(), it.currentId_}); + freeVariant({it->data(), it.currentId_}); } inline void VariantImpl::removePair(VariantImpl::iterator it) { if (it.done()) return; - auto keySlot = it.data(); + auto keySlot = it->data(); auto valueId = keySlot->next; auto valueSlot = getVariant(valueId); diff --git a/src/ArduinoJson/Collection/CollectionIterator.hpp b/src/ArduinoJson/Collection/CollectionIterator.hpp index b0496070..e4064c3f 100644 --- a/src/ArduinoJson/Collection/CollectionIterator.hpp +++ b/src/ArduinoJson/Collection/CollectionIterator.hpp @@ -43,21 +43,13 @@ class CollectionIterator { } bool operator==(const CollectionIterator& other) const { - return data() == other.data(); + return value_.data() == other->data(); } bool operator!=(const CollectionIterator& other) const { return !operator==(other); } - VariantData* data() { - return value_.data(); - } - - const VariantData* data() const { - return value_.data(); - } - private: CollectionIterator(SlotId slotId, ResourceManager* resources) : value_(resources->getVariant(slotId), resources), currentId_(slotId) {} diff --git a/src/ArduinoJson/Object/ObjectImpl.hpp b/src/ArduinoJson/Object/ObjectImpl.hpp index 1f43ce23..f691c42a 100644 --- a/src/ArduinoJson/Object/ObjectImpl.hpp +++ b/src/ArduinoJson/Object/ObjectImpl.hpp @@ -15,7 +15,7 @@ inline VariantData* VariantImpl::getMember(TAdaptedString key) const { if (it.done()) return nullptr; it.next(); - return it.data(); + return it->data(); } template