getMember() (6764,5602)

This commit is contained in:
Benoit Blanchon
2022-03-30 21:43:55 +02:00
parent 99a646e854
commit 03414a5301
2 changed files with 7 additions and 4 deletions

View File

@@ -291,8 +291,8 @@ class VariantData {
} }
template <typename TAdaptedString> template <typename TAdaptedString>
VariantData *getMember(TAdaptedString key) const { // P+4 G+0 VariantData *getMember(TAdaptedString key) const {
const CollectionData *col = resolve()->asObject(); const CollectionData *col = asObject();
return col ? col->getMember(key) : 0; return col ? col->getMember(key) : 0;
} }

View File

@@ -143,13 +143,16 @@ inline VariantRef VariantRef::getOrAddElement(size_t index) const {
template <typename TChar> template <typename TChar>
inline VariantRef VariantRef::getMember(TChar *key) const { inline VariantRef VariantRef::getMember(TChar *key) const {
return VariantRef(_pool, _data != 0 ? _data->getMember(adaptString(key)) : 0); return VariantRef( // TODO: this returns a mutable reference to a linked
// object
_pool, _data != 0 ? _data->resolve()->getMember(adaptString(key)) : 0);
} }
template <typename TString> template <typename TString>
inline typename enable_if<IsString<TString>::value, VariantRef>::type inline typename enable_if<IsString<TString>::value, VariantRef>::type
VariantRef::getMember(const TString &key) const { VariantRef::getMember(const TString &key) const {
return VariantRef(_pool, _data != 0 ? _data->getMember(adaptString(key)) : 0); return VariantRef( // TODO: idem
_pool, _data != 0 ? _data->resolve()->getMember(adaptString(key)) : 0);
} }
template <typename TChar> template <typename TChar>