Changed the array subscript to automatically add missing elements

This commit is contained in:
Benoit Blanchon
2020-02-20 08:59:25 +01:00
parent 0001dabfd1
commit d8724e0a0b
24 changed files with 209 additions and 93 deletions

View File

@@ -129,11 +129,14 @@ class MemberProxy : public VariantOperators<MemberProxy<TObject, TStringRef> >,
return getOrAddUpstreamMember().addElement();
}
// getElement(size_t) const
FORCE_INLINE VariantRef getElement(size_t index) const {
return getUpstreamMember().getElement(index);
}
FORCE_INLINE VariantRef getOrAddElement(size_t index) const {
return getOrAddUpstreamMember().getOrAddElement(index);
}
// getMember(char*) const
// getMember(const char*) const
// getMember(const __FlashStringHelper*) const

View File

@@ -28,14 +28,14 @@ template <typename TAdaptedString>
inline VariantData *objectGet(const CollectionData *obj, TAdaptedString key) {
if (!obj)
return 0;
return obj->get(key);
return obj->getMember(key);
}
template <typename TAdaptedString>
void objectRemove(CollectionData *obj, TAdaptedString key) {
if (!obj)
return;
obj->remove(key);
obj->removeMember(key);
}
template <typename TAdaptedString>
@@ -49,10 +49,10 @@ inline VariantData *objectGetOrCreate(CollectionData *obj, TAdaptedString key,
return 0;
// search a matching key
VariantData *var = obj->get(key);
VariantData *var = obj->getMember(key);
if (var)
return var;
return obj->add(key, pool);
return obj->addMember(key, pool);
}
} // namespace ARDUINOJSON_NAMESPACE

View File

@@ -213,7 +213,7 @@ class ObjectRef : public ObjectRefBase<CollectionData>,
FORCE_INLINE void remove(iterator it) const {
if (!_data)
return;
_data->remove(it.internal());
_data->removeSlot(it.internal());
}
// remove(const std::string&) const