Inline variantAccept()

This commit is contained in:
Benoit Blanchon
2022-05-22 17:07:16 +02:00
parent 37faa7ce13
commit ee74c3bb1c
2 changed files with 3 additions and 10 deletions

View File

@ -11,15 +11,6 @@
namespace ARDUINOJSON_NAMESPACE {
template <typename TVisitor>
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;
}

View File

@ -30,7 +30,9 @@ class VariantRefBase : public VariantTag {
public:
template <typename TVisitor>
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 {