diff --git a/src/ArduinoJson/Variant/VariantData.hpp b/src/ArduinoJson/Variant/VariantData.hpp index 4519c2c4..9fddd6b9 100644 --- a/src/ArduinoJson/Variant/VariantData.hpp +++ b/src/ArduinoJson/Variant/VariantData.hpp @@ -261,6 +261,11 @@ class VariantData { flags_ = uint8_t((flags_ & OWNED_KEY_BIT) | (src.flags_ & ~OWNED_KEY_BIT)); } + template + void removeMember(TAdaptedString key, MemoryPool* pool) { + collectionRemoveMember(asObject(), key, pool); + } + void reset() { flags_ = VALUE_IS_NULL; } diff --git a/src/ArduinoJson/Variant/VariantFunctions.hpp b/src/ArduinoJson/Variant/VariantFunctions.hpp index 396551b5..fc31249e 100644 --- a/src/ArduinoJson/Variant/VariantFunctions.hpp +++ b/src/ArduinoJson/Variant/VariantFunctions.hpp @@ -15,9 +15,6 @@ bool collectionCopy(CollectionData* dst, const CollectionData* src, MemoryPool* pool); void collectionRemoveElement(CollectionData* data, size_t index, MemoryPool* pool); -template -void collectionRemoveMember(CollectionData* data, TAdaptedString key, - MemoryPool* pool); template inline typename TVisitor::result_type variantAccept(const VariantData* var, @@ -183,7 +180,7 @@ void variantRemoveMember(VariantData* var, TAdaptedString key, MemoryPool* pool) { if (!var) return; - collectionRemoveMember(var->asObject(), key, pool); + var->removeMember(key, pool); } inline bool variantIsNull(const VariantData* var) {