VariantImpl: change setRawString() to return bool

This commit is contained in:
Benoit Blanchon
2025-07-16 12:11:58 +02:00
parent 3793996d83
commit 38f61d322f
2 changed files with 8 additions and 6 deletions

View File

@ -173,10 +173,10 @@ inline detail::enable_if_t<detail::IsString<T>::value> convertToJson(
// SerializedValue<const __FlashStringHelper*>
template <typename T>
struct Converter<SerializedValue<T>> : private detail::VariantAttorney {
static void toJson(SerializedValue<T> src, JsonVariant dst) {
static bool toJson(SerializedValue<T> src, JsonVariant dst) {
auto variant = getImpl(dst);
variant.clear();
variant.setRawString(detail::adaptString(src.data(), src.size()));
return variant.setRawString(detail::adaptString(src.data(), src.size()));
}
};

View File

@ -441,12 +441,14 @@ class VariantImpl {
}
template <typename TAdaptedString>
void setRawString(TAdaptedString value) {
bool setRawString(TAdaptedString value) {
if (!data_)
return;
return false;
auto dup = resources_->saveString(value);
if (dup)
data_->setRawString(dup);
if (!dup)
return false;
data_->setRawString(dup);
return true;
}
template <typename TAdaptedString>