mirror of
https://github.com/eledio-devices/thirdparty-ArduinoJson.git
synced 2025-11-01 08:48:30 +01:00
asArray() ignores pointer (6796,5626)
This commit is contained in:
@@ -98,8 +98,6 @@ class VariantData {
|
||||
}
|
||||
|
||||
const CollectionData *asArray() const {
|
||||
if (isPointer()) // P+14 G+0
|
||||
return _content.asPointer->asArray();
|
||||
return const_cast<VariantData *>(this)->asArray();
|
||||
}
|
||||
|
||||
@@ -305,7 +303,7 @@ class VariantData {
|
||||
}
|
||||
|
||||
VariantData *getElement(size_t index) const { // P+4 G+0
|
||||
const CollectionData *col = asArray();
|
||||
const CollectionData *col = resolve()->asArray();
|
||||
return col ? col->getElement(index) : 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@ inline typename TVisitor::result_type variantAccept(const VariantData *var,
|
||||
}
|
||||
|
||||
inline const CollectionData *variantAsArray(const VariantData *var) {
|
||||
return var != 0 ? var->asArray() : 0;
|
||||
return var != 0 ? var->resolve()->asArray() : 0;
|
||||
}
|
||||
|
||||
inline const CollectionData *variantAsObject(const VariantData *var) {
|
||||
|
||||
@@ -127,7 +127,7 @@ VariantRef::to() const {
|
||||
}
|
||||
|
||||
inline VariantConstRef VariantConstRef::getElement(size_t index) const {
|
||||
return ArrayConstRef(_data != 0 ? _data->asArray() : 0)[index];
|
||||
return ArrayConstRef(_data != 0 ? _data->resolve()->asArray() : 0)[index];
|
||||
}
|
||||
|
||||
inline VariantRef VariantRef::addElement() const {
|
||||
|
||||
Reference in New Issue
Block a user