forked from bblanchon/ArduinoJson
variantGetOrAddMember()
takes an adapted string like all its siblings
This commit is contained in:
@ -25,7 +25,8 @@ class MemberDataSource {
|
|||||||
|
|
||||||
FORCE_INLINE VariantData* getOrCreateData() const {
|
FORCE_INLINE VariantData* getOrCreateData() const {
|
||||||
return variantGetOrAddMember(VariantAttorney::getOrCreateData(_upstream),
|
return variantGetOrAddMember(VariantAttorney::getOrCreateData(_upstream),
|
||||||
_key, VariantAttorney::getPool(_upstream));
|
adaptString(_key),
|
||||||
|
VariantAttorney::getPool(_upstream));
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
@ -74,29 +74,19 @@ inline NO_INLINE VariantData* variantGetOrAddElement(VariantData* var,
|
|||||||
return var != 0 ? var->getOrAddElement(index, pool) : 0;
|
return var != 0 ? var->getOrAddElement(index, pool) : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename AdaptedString>
|
template <typename TAdaptedString>
|
||||||
VariantData* variantGetMember(const VariantData* var, AdaptedString key) {
|
VariantData* variantGetMember(const VariantData* var, TAdaptedString key) {
|
||||||
if (!var)
|
if (!var)
|
||||||
return 0;
|
return 0;
|
||||||
return var->getMember(key);
|
return var->getMember(key);
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: this function is inconsitent with the others:
|
template <typename TAdaptedString>
|
||||||
// it should take an adapted string
|
VariantData* variantGetOrAddMember(VariantData* var, TAdaptedString key,
|
||||||
template <typename TChar>
|
|
||||||
VariantData* variantGetOrAddMember(VariantData* var, TChar* key,
|
|
||||||
MemoryPool* pool) {
|
MemoryPool* pool) {
|
||||||
if (!var)
|
if (!var)
|
||||||
return 0;
|
return 0;
|
||||||
return var->getOrAddMember(adaptString(key), pool);
|
return var->getOrAddMember(key, pool);
|
||||||
}
|
|
||||||
|
|
||||||
template <typename TString>
|
|
||||||
VariantData* variantGetOrAddMember(VariantData* var, const TString& key,
|
|
||||||
MemoryPool* pool) {
|
|
||||||
if (!var)
|
|
||||||
return 0;
|
|
||||||
return var->getOrAddMember(adaptString(key), pool);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
inline bool variantIsNull(const VariantData* var) {
|
inline bool variantIsNull(const VariantData* var) {
|
||||||
|
Reference in New Issue
Block a user