diff --git a/src/ArduinoJson/MsgPack/MsgPackSerializer.hpp b/src/ArduinoJson/MsgPack/MsgPackSerializer.hpp index 41063e79..75ea95ae 100644 --- a/src/ArduinoJson/MsgPack/MsgPackSerializer.hpp +++ b/src/ArduinoJson/MsgPack/MsgPackSerializer.hpp @@ -59,12 +59,8 @@ class MsgPackSerializer : public VariantDataVisitor { writeInteger(uint32_t(n)); } - auto slotId = array.head(); - while (slotId != NULL_SLOT) { - auto slot = resources_->getVariant(slotId); - VariantImpl(slot, resources_).accept(*this); - slotId = slot->next; - } + for (auto it = array.createIterator(); !it.done(); it.move()) + it->accept(*this); return bytesWritten(); } @@ -81,12 +77,8 @@ class MsgPackSerializer : public VariantDataVisitor { writeInteger(uint32_t(n)); } - auto slotId = object.head(); - while (slotId != NULL_SLOT) { - auto slot = resources_->getVariant(slotId); - VariantImpl(slot, resources_).accept(*this); - slotId = slot->next; - } + for (auto it = object.createIterator(); !it.done(); it.move()) + it->accept(*this); return bytesWritten(); } diff --git a/src/ArduinoJson/Variant/VariantImpl.hpp b/src/ArduinoJson/Variant/VariantImpl.hpp index 746c8e27..10ec623a 100644 --- a/src/ArduinoJson/Variant/VariantImpl.hpp +++ b/src/ArduinoJson/Variant/VariantImpl.hpp @@ -266,10 +266,6 @@ class VariantImpl { } #endif - SlotId head() const { - return getCollectionData()->head; - } - iterator createIterator() const; VariantData* getElement(size_t index) const;