forked from bblanchon/ArduinoJson
Inline variantAccept()
This commit is contained in:
@ -11,15 +11,6 @@
|
|||||||
|
|
||||||
namespace ARDUINOJSON_NAMESPACE {
|
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) {
|
inline const CollectionData *variantAsArray(const VariantData *var) {
|
||||||
return var != 0 ? var->resolve()->asArray() : 0;
|
return var != 0 ? var->resolve()->asArray() : 0;
|
||||||
}
|
}
|
||||||
|
@ -30,7 +30,9 @@ class VariantRefBase : public VariantTag {
|
|||||||
public:
|
public:
|
||||||
template <typename TVisitor>
|
template <typename TVisitor>
|
||||||
typename TVisitor::result_type accept(TVisitor &visitor) const {
|
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 {
|
FORCE_INLINE bool isNull() const {
|
||||||
|
Reference in New Issue
Block a user