diff --git a/src/ArduinoJson/Array/ArrayImpl.hpp b/src/ArduinoJson/Array/ArrayImpl.hpp index 0183a14b..72eff183 100644 --- a/src/ArduinoJson/Array/ArrayImpl.hpp +++ b/src/ArduinoJson/Array/ArrayImpl.hpp @@ -18,19 +18,6 @@ inline ArrayData::iterator ArrayData::at(size_t index) const { return it; } -inline bool ArrayData::copyFrom(const ArrayData& src, - ResourceManager* resources) { - clear(resources); - - for (auto it = src.createIterator(); !it.done(); it.next()) { - auto var = addElement(resources); - if (!copyVariant(JsonVariant(var, resources), - JsonVariantConst(it.data(), resources))) - return false; - } - return true; -} - inline VariantData* ArrayData::getOrAddElement(size_t index, ResourceManager* resources) { auto it = createIterator(); diff --git a/src/ArduinoJson/Array/JsonArray.hpp b/src/ArduinoJson/Array/JsonArray.hpp index 2a0f0fb8..c7670b65 100644 --- a/src/ArduinoJson/Array/JsonArray.hpp +++ b/src/ArduinoJson/Array/JsonArray.hpp @@ -80,7 +80,16 @@ class JsonArray : public detail::VariantOperators { // Copies an array. // https://arduinojson.org/v6/api/jsonarray/set/ FORCE_INLINE bool set(JsonArrayConst src) const { - return detail::ArrayData::copy(data_, src.data_, resources_); + if (!data_) + return false; + + clear(); + for (auto element : src) { + if (!add(element)) + return false; + } + + return true; } // Removes the element at the specified iterator.