diff --git a/src/ArduinoJson/Variant/ConverterImpl.hpp b/src/ArduinoJson/Variant/ConverterImpl.hpp index ef79e244..cc3fd1fc 100644 --- a/src/ArduinoJson/Variant/ConverterImpl.hpp +++ b/src/ArduinoJson/Variant/ConverterImpl.hpp @@ -199,7 +199,7 @@ struct Converter { } static bool checkJson(VariantConstRef src) { const VariantData* data = getData(src); - return data == 0 || data->isNull(); + return data == 0 || data->resolve()->isNull(); } }; diff --git a/src/ArduinoJson/Variant/VariantData.hpp b/src/ArduinoJson/Variant/VariantData.hpp index 7a60249d..a79164f9 100644 --- a/src/ArduinoJson/Variant/VariantData.hpp +++ b/src/ArduinoJson/Variant/VariantData.hpp @@ -163,8 +163,6 @@ class VariantData { } bool isNull() const { - if (isPointer()) // P+0 G+20 - return _content.asPointer->isNull(); return type() == VALUE_IS_NULL; } diff --git a/src/ArduinoJson/Variant/VariantFunctions.hpp b/src/ArduinoJson/Variant/VariantFunctions.hpp index 2bed73dd..e5cb4296 100644 --- a/src/ArduinoJson/Variant/VariantFunctions.hpp +++ b/src/ArduinoJson/Variant/VariantFunctions.hpp @@ -103,7 +103,7 @@ NO_INLINE VariantData *variantGetOrAddMember(VariantData *var, } inline bool variantIsNull(const VariantData *var) { - return var == 0 || var->isNull(); + return var == 0 || var->resolve()->isNull(); } } // namespace ARDUINOJSON_NAMESPACE