diff --git a/src/ArduinoJson/Variant/VariantFunctions.hpp b/src/ArduinoJson/Variant/VariantFunctions.hpp index c6b64f8a..379ea9c0 100644 --- a/src/ArduinoJson/Variant/VariantFunctions.hpp +++ b/src/ArduinoJson/Variant/VariantFunctions.hpp @@ -11,15 +11,6 @@ namespace ARDUINOJSON_NAMESPACE { -template -inline typename TVisitor::result_type variantAccept(const VariantData *var, - TVisitor &visitor) { - if (var != 0) - return var->resolve()->accept(visitor); - else - return visitor.visitNull(); -} - inline const CollectionData *variantAsArray(const VariantData *var) { return var != 0 ? var->resolve()->asArray() : 0; } diff --git a/src/ArduinoJson/Variant/VariantRef.hpp b/src/ArduinoJson/Variant/VariantRef.hpp index 4ab82cd7..a31983f9 100644 --- a/src/ArduinoJson/Variant/VariantRef.hpp +++ b/src/ArduinoJson/Variant/VariantRef.hpp @@ -30,7 +30,9 @@ class VariantRefBase : public VariantTag { public: template typename TVisitor::result_type accept(TVisitor &visitor) const { - return variantAccept(_data, visitor); + if (!_data) + return visitor.visitNull(); + return _data->resolve()->accept(visitor); } FORCE_INLINE bool isNull() const {