Inline variantAsArray() and variantAsObject()

This commit is contained in:
Benoit Blanchon
2022-07-05 14:02:41 +02:00
parent 5b06b1564e
commit 3b3ab8c4e1
3 changed files with 4 additions and 14 deletions

View File

@ -201,7 +201,8 @@ struct Converter<ArrayConstRef> {
}
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) {

View File

@ -268,7 +268,8 @@ struct Converter<ObjectConstRef> {
}
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) {

View File

@ -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)