diff --git a/src/ArduinoJson/Variant/VariantImpl.hpp b/src/ArduinoJson/Variant/VariantImpl.hpp index ca25a9ed..88263c00 100644 --- a/src/ArduinoJson/Variant/VariantImpl.hpp +++ b/src/ArduinoJson/Variant/VariantImpl.hpp @@ -469,13 +469,17 @@ class VariantImpl { return true; } - auto dup = resources_->saveString(value); - if (dup) { - data_->setOwnedString(dup); - return true; - } + return setOwnedString(value); + } - return false; + template + bool setOwnedString(TAdaptedString value) { + auto dup = resources_->saveString(value); + if (!dup) + return false; + + data_->setOwnedString(dup); + return true; } bool setLinkedString(const char* s) {