From 3b3ab8c4e19bebdf8c8bc6cd06421998301698cf Mon Sep 17 00:00:00 2001 From: Benoit Blanchon Date: Tue, 5 Jul 2022 14:02:41 +0200 Subject: [PATCH] Inline `variantAsArray()` and `variantAsObject()` --- src/ArduinoJson/Array/ArrayRef.hpp | 3 ++- src/ArduinoJson/Object/ObjectRef.hpp | 3 ++- src/ArduinoJson/Variant/VariantFunctions.hpp | 12 ------------ 3 files changed, 4 insertions(+), 14 deletions(-) diff --git a/src/ArduinoJson/Array/ArrayRef.hpp b/src/ArduinoJson/Array/ArrayRef.hpp index a2e6eb11..fb396987 100644 --- a/src/ArduinoJson/Array/ArrayRef.hpp +++ b/src/ArduinoJson/Array/ArrayRef.hpp @@ -201,7 +201,8 @@ struct Converter { } static ArrayConstRef fromJson(VariantConstRef src) { - return ArrayConstRef(variantAsArray(getData(src))); + const VariantData* data = getData(src); + return data ? data->resolve()->asArray() : 0; } static bool checkJson(VariantConstRef src) { diff --git a/src/ArduinoJson/Object/ObjectRef.hpp b/src/ArduinoJson/Object/ObjectRef.hpp index 7dcd43f0..ba862abe 100644 --- a/src/ArduinoJson/Object/ObjectRef.hpp +++ b/src/ArduinoJson/Object/ObjectRef.hpp @@ -268,7 +268,8 @@ struct Converter { } static ObjectConstRef fromJson(VariantConstRef src) { - return ObjectConstRef(variantAsObject(getData(src))); + const VariantData* data = getData(src); + return data != 0 ? data->resolve()->asObject() : 0; } static bool checkJson(VariantConstRef src) { diff --git a/src/ArduinoJson/Variant/VariantFunctions.hpp b/src/ArduinoJson/Variant/VariantFunctions.hpp index c6b64f8a..5962fd87 100644 --- a/src/ArduinoJson/Variant/VariantFunctions.hpp +++ b/src/ArduinoJson/Variant/VariantFunctions.hpp @@ -20,18 +20,6 @@ inline typename TVisitor::result_type variantAccept(const VariantData *var, return visitor.visitNull(); } -inline const CollectionData *variantAsArray(const VariantData *var) { - return var != 0 ? var->resolve()->asArray() : 0; -} - -inline const CollectionData *variantAsObject(const VariantData *var) { - return var != 0 ? var->resolve()->asObject() : 0; -} - -inline CollectionData *variantAsObject(VariantData *var) { - return var != 0 ? var->asObject() : 0; -} - inline bool variantCopyFrom(VariantData *dst, const VariantData *src, MemoryPool *pool) { if (!dst)