From 7004c39af69d6fa3274cf90a26f1822f3df80882 Mon Sep 17 00:00:00 2001 From: Benoit Blanchon Date: Wed, 26 Oct 2022 10:44:21 +0200 Subject: [PATCH] `variantGetOrAddMember()` takes an adapted string like all its siblings --- src/ArduinoJson/Object/MemberProxy.hpp | 3 ++- src/ArduinoJson/Variant/VariantFunctions.hpp | 20 +++++--------------- 2 files changed, 7 insertions(+), 16 deletions(-) diff --git a/src/ArduinoJson/Object/MemberProxy.hpp b/src/ArduinoJson/Object/MemberProxy.hpp index df11a9d9..e239d402 100644 --- a/src/ArduinoJson/Object/MemberProxy.hpp +++ b/src/ArduinoJson/Object/MemberProxy.hpp @@ -25,7 +25,8 @@ class MemberDataSource { FORCE_INLINE VariantData* getOrCreateData() const { return variantGetOrAddMember(VariantAttorney::getOrCreateData(_upstream), - _key, VariantAttorney::getPool(_upstream)); + adaptString(_key), + VariantAttorney::getPool(_upstream)); } private: diff --git a/src/ArduinoJson/Variant/VariantFunctions.hpp b/src/ArduinoJson/Variant/VariantFunctions.hpp index 2673b7cd..99cc7cb1 100644 --- a/src/ArduinoJson/Variant/VariantFunctions.hpp +++ b/src/ArduinoJson/Variant/VariantFunctions.hpp @@ -74,29 +74,19 @@ inline NO_INLINE VariantData* variantGetOrAddElement(VariantData* var, return var != 0 ? var->getOrAddElement(index, pool) : 0; } -template -VariantData* variantGetMember(const VariantData* var, AdaptedString key) { +template +VariantData* variantGetMember(const VariantData* var, TAdaptedString key) { if (!var) return 0; return var->getMember(key); } -// TODO: this function is inconsitent with the others: -// it should take an adapted string -template -VariantData* variantGetOrAddMember(VariantData* var, TChar* key, +template +VariantData* variantGetOrAddMember(VariantData* var, TAdaptedString key, MemoryPool* pool) { if (!var) return 0; - return var->getOrAddMember(adaptString(key), pool); -} - -template -VariantData* variantGetOrAddMember(VariantData* var, const TString& key, - MemoryPool* pool) { - if (!var) - return 0; - return var->getOrAddMember(adaptString(key), pool); + return var->getOrAddMember(key, pool); } inline bool variantIsNull(const VariantData* var) {