فهرست منبع

VariantImpl: change `setRawString()` to return `bool`

Benoit Blanchon 7 ماه پیش
والد
کامیت
38f61d322f
2فایلهای تغییر یافته به همراه8 افزوده شده و 6 حذف شده
  1. 2 2
      src/ArduinoJson/Variant/ConverterImpl.hpp
  2. 6 4
      src/ArduinoJson/Variant/VariantImpl.hpp

+ 2 - 2
src/ArduinoJson/Variant/ConverterImpl.hpp

@@ -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()));
   }
 };
 

+ 6 - 4
src/ArduinoJson/Variant/VariantImpl.hpp

@@ -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>