mirror of
				https://github.com/eledio-devices/thirdparty-ArduinoJson.git
				synced 2025-10-31 16:14:11 +01:00 
			
		
		
		
	Reversed parameters of convertToJson() and convertFromJson()
Now the order matches copyArray(): source first, destination second.
This commit is contained in:
		| @@ -13,22 +13,22 @@ struct Date { | |||||||
|   int year; |   int year; | ||||||
| }; | }; | ||||||
|  |  | ||||||
| bool convertToJson(JsonVariant variant, const Date& date) { | bool convertToJson(const Date& src, JsonVariant dst) { | ||||||
|   variant["day"] = date.day; |   dst["day"] = src.day; | ||||||
|   variant["month"] = date.month; |   dst["month"] = src.month; | ||||||
|   variant["year"] = date.year; |   dst["year"] = src.year; | ||||||
|   return true; |   return true; | ||||||
| } | } | ||||||
|  |  | ||||||
| void convertFromJson(Date& date, JsonVariantConst variant) { | void convertFromJson(JsonVariantConst src, Date& dst) { | ||||||
|   date.day = variant["day"]; |   dst.day = src["day"]; | ||||||
|   date.month = variant["month"]; |   dst.month = src["month"]; | ||||||
|   date.year = variant["year"]; |   dst.year = src["year"]; | ||||||
| } | } | ||||||
|  |  | ||||||
| bool canConvertFromJson(Date&, JsonVariantConst variant) { | bool canConvertFromJson(JsonVariantConst src, const Date&) { | ||||||
|   return variant["day"].is<int>() && variant["month"].is<int>() && |   return src["day"].is<int>() && src["month"].is<int>() && | ||||||
|          variant["year"].is<int>(); |          src["year"].is<int>(); | ||||||
| } | } | ||||||
| }  // namespace | }  // namespace | ||||||
|  |  | ||||||
| @@ -92,18 +92,18 @@ class Complex { | |||||||
| namespace ARDUINOJSON_NAMESPACE { | namespace ARDUINOJSON_NAMESPACE { | ||||||
| template <> | template <> | ||||||
| struct Converter<Complex> { | struct Converter<Complex> { | ||||||
|   static bool toJson(VariantRef variant, const Complex& value) { |   static bool toJson(const Complex& src, VariantRef dst) { | ||||||
|     variant["real"] = value.real(); |     dst["real"] = src.real(); | ||||||
|     variant["imag"] = value.imag(); |     dst["imag"] = src.imag(); | ||||||
|     return true; |     return true; | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   static Complex fromJson(VariantConstRef variant) { |   static Complex fromJson(VariantConstRef src) { | ||||||
|     return Complex(variant["real"], variant["imag"]); |     return Complex(src["real"], src["imag"]); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   static bool checkJson(VariantConstRef variant) { |   static bool checkJson(VariantConstRef src) { | ||||||
|     return variant["real"].is<double>() && variant["imag"].is<double>(); |     return src["real"].is<double>() && src["imag"].is<double>(); | ||||||
|   } |   } | ||||||
| }; | }; | ||||||
| }  // namespace ARDUINOJSON_NAMESPACE | }  // namespace ARDUINOJSON_NAMESPACE | ||||||
|   | |||||||
| @@ -167,29 +167,29 @@ class ArrayRef : public ArrayRefBase<CollectionData>, | |||||||
|  |  | ||||||
| template <> | template <> | ||||||
| struct Converter<ArrayConstRef> { | struct Converter<ArrayConstRef> { | ||||||
|   static bool toJson(VariantRef variant, VariantConstRef value) { |   static bool toJson(VariantConstRef src, VariantRef dst) { | ||||||
|     return variantCopyFrom(getData(variant), getData(value), getPool(variant)); |     return variantCopyFrom(getData(dst), getData(src), getPool(dst)); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   static ArrayConstRef fromJson(VariantConstRef variant) { |   static ArrayConstRef fromJson(VariantConstRef src) { | ||||||
|     return ArrayConstRef(variantAsArray(getData(variant))); |     return ArrayConstRef(variantAsArray(getData(src))); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   static bool checkJson(VariantConstRef variant) { |   static bool checkJson(VariantConstRef src) { | ||||||
|     const VariantData* data = getData(variant); |     const VariantData* data = getData(src); | ||||||
|     return data && data->isArray(); |     return data && data->isArray(); | ||||||
|   } |   } | ||||||
| }; | }; | ||||||
|  |  | ||||||
| template <> | template <> | ||||||
| struct Converter<ArrayRef> { | struct Converter<ArrayRef> { | ||||||
|   static bool toJson(VariantRef variant, VariantConstRef value) { |   static bool toJson(VariantConstRef src, VariantRef dst) { | ||||||
|     return variantCopyFrom(getData(variant), getData(value), getPool(variant)); |     return variantCopyFrom(getData(dst), getData(src), getPool(dst)); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   static ArrayRef fromJson(VariantRef variant) { |   static ArrayRef fromJson(VariantRef src) { | ||||||
|     VariantData* data = getData(variant); |     VariantData* data = getData(src); | ||||||
|     MemoryPool* pool = getPool(variant); |     MemoryPool* pool = getPool(src); | ||||||
|     return ArrayRef(pool, data != 0 ? data->asArray() : 0); |     return ArrayRef(pool, data != 0 ? data->asArray() : 0); | ||||||
|   } |   } | ||||||
|  |  | ||||||
| @@ -197,8 +197,8 @@ struct Converter<ArrayRef> { | |||||||
|     return false; |     return false; | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   static bool checkJson(VariantRef variant) { |   static bool checkJson(VariantRef src) { | ||||||
|     VariantData* data = getData(variant); |     VariantData* data = getData(src); | ||||||
|     return data && data->isArray(); |     return data && data->isArray(); | ||||||
|   } |   } | ||||||
| }; | }; | ||||||
|   | |||||||
| @@ -177,8 +177,8 @@ class ElementProxy : public VariantOperators<ElementProxy<TArray> >, | |||||||
|     return _array.getOrAddElement(_index); |     return _array.getOrAddElement(_index); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   friend bool convertToJson(VariantRef variant, const this_type& value) { |   friend bool convertToJson(const this_type& src, VariantRef dst) { | ||||||
|     return variant.set(value.getUpstreamElement()); |     return dst.set(src.getUpstreamElement()); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   TArray _array; |   TArray _array; | ||||||
|   | |||||||
| @@ -337,8 +337,8 @@ class JsonDocument : public Visitable { | |||||||
|   JsonDocument& operator=(const JsonDocument&); |   JsonDocument& operator=(const JsonDocument&); | ||||||
| }; | }; | ||||||
|  |  | ||||||
| inline bool convertToJson(VariantRef variant, const JsonDocument& doc) { | inline bool convertToJson(const JsonDocument& src, VariantRef dst) { | ||||||
|   return variant.set(doc.as<VariantConstRef>()); |   return dst.set(src.as<VariantConstRef>()); | ||||||
| } | } | ||||||
|  |  | ||||||
| }  // namespace ARDUINOJSON_NAMESPACE | }  // namespace ARDUINOJSON_NAMESPACE | ||||||
|   | |||||||
| @@ -186,8 +186,8 @@ class MemberProxy : public VariantOperators<MemberProxy<TObject, TStringRef> >, | |||||||
|     return _object.getOrAddMember(_key); |     return _object.getOrAddMember(_key); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   friend bool convertToJson(VariantRef variant, const this_type &value) { |   friend bool convertToJson(const this_type &src, VariantRef dst) { | ||||||
|     return variant.set(value.getUpstreamMember()); |     return dst.set(src.getUpstreamMember()); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   TObject _object; |   TObject _object; | ||||||
|   | |||||||
| @@ -239,29 +239,29 @@ class ObjectRef : public ObjectRefBase<CollectionData>, | |||||||
|  |  | ||||||
| template <> | template <> | ||||||
| struct Converter<ObjectConstRef> { | struct Converter<ObjectConstRef> { | ||||||
|   static bool toJson(VariantRef variant, VariantConstRef value) { |   static bool toJson(VariantConstRef src, VariantRef dst) { | ||||||
|     return variantCopyFrom(getData(variant), getData(value), getPool(variant)); |     return variantCopyFrom(getData(dst), getData(src), getPool(dst)); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   static ObjectConstRef fromJson(VariantConstRef variant) { |   static ObjectConstRef fromJson(VariantConstRef src) { | ||||||
|     return ObjectConstRef(variantAsObject(getData(variant))); |     return ObjectConstRef(variantAsObject(getData(src))); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   static bool checkJson(VariantConstRef variant) { |   static bool checkJson(VariantConstRef src) { | ||||||
|     const VariantData* data = getData(variant); |     const VariantData* data = getData(src); | ||||||
|     return data && data->isObject(); |     return data && data->isObject(); | ||||||
|   } |   } | ||||||
| }; | }; | ||||||
|  |  | ||||||
| template <> | template <> | ||||||
| struct Converter<ObjectRef> { | struct Converter<ObjectRef> { | ||||||
|   static bool toJson(VariantRef variant, VariantConstRef value) { |   static bool toJson(VariantConstRef src, VariantRef dst) { | ||||||
|     return variantCopyFrom(getData(variant), getData(value), getPool(variant)); |     return variantCopyFrom(getData(dst), getData(src), getPool(dst)); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   static ObjectRef fromJson(VariantRef variant) { |   static ObjectRef fromJson(VariantRef src) { | ||||||
|     VariantData* data = getData(variant); |     VariantData* data = getData(src); | ||||||
|     MemoryPool* pool = getPool(variant); |     MemoryPool* pool = getPool(src); | ||||||
|     return ObjectRef(pool, data != 0 ? data->asObject() : 0); |     return ObjectRef(pool, data != 0 ? data->asObject() : 0); | ||||||
|   } |   } | ||||||
|  |  | ||||||
| @@ -269,8 +269,8 @@ struct Converter<ObjectRef> { | |||||||
|     return false; |     return false; | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   static bool checkJson(VariantRef variant) { |   static bool checkJson(VariantRef src) { | ||||||
|     VariantData* data = getData(variant); |     VariantData* data = getData(src); | ||||||
|     return data && data->isObject(); |     return data && data->isObject(); | ||||||
|   } |   } | ||||||
| }; | }; | ||||||
|   | |||||||
| @@ -12,24 +12,24 @@ namespace ARDUINOJSON_NAMESPACE { | |||||||
|  |  | ||||||
| template <typename T, typename Enable> | template <typename T, typename Enable> | ||||||
| struct Converter { | struct Converter { | ||||||
|   static bool toJson(VariantRef variant, const T& value) { |   static bool toJson(const T& src, VariantRef dst) { | ||||||
|     // clang-format off |     // clang-format off | ||||||
|     return convertToJson(variant, value); // Error here? See https://arduinojson.org/v6/unsupported-set/ |     return convertToJson(src, dst); // Error here? See https://arduinojson.org/v6/unsupported-set/ | ||||||
|     // clang-format on |     // clang-format on | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   static T fromJson(VariantConstRef variant) { |   static T fromJson(VariantConstRef src) { | ||||||
|     // clang-format off |     // clang-format off | ||||||
|     T value; // Error here? See https://arduinojson.org/v6/non-default-constructible/ |     T result; // Error here? See https://arduinojson.org/v6/non-default-constructible/ | ||||||
|     convertFromJson(value, variant);  // Error here? See https://arduinojson.org/v6/unsupported-as/ |     convertFromJson(src, result);  // Error here? See https://arduinojson.org/v6/unsupported-as/ | ||||||
|     // clang-format on |     // clang-format on | ||||||
|     return value; |     return result; | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   static bool checkJson(VariantConstRef variant) { |   static bool checkJson(VariantConstRef src) { | ||||||
|     T dummy; |     T dummy; | ||||||
|     // clang-format off |     // clang-format off | ||||||
|     return canConvertFromJson(dummy, variant);  // Error here? See https://arduinojson.org/v6/unsupported-is/ |     return canConvertFromJson(src, dummy);  // Error here? See https://arduinojson.org/v6/unsupported-is/ | ||||||
|     // clang-format on |     // clang-format on | ||||||
|   } |   } | ||||||
| }; | }; | ||||||
| @@ -38,137 +38,136 @@ template <typename T> | |||||||
| struct Converter< | struct Converter< | ||||||
|     T, typename enable_if<is_integral<T>::value && !is_same<bool, T>::value && |     T, typename enable_if<is_integral<T>::value && !is_same<bool, T>::value && | ||||||
|                           !is_same<char, T>::value>::type> { |                           !is_same<char, T>::value>::type> { | ||||||
|   static bool toJson(VariantRef variant, T value) { |   static bool toJson(T src, VariantRef dst) { | ||||||
|     VariantData* data = getData(variant); |     VariantData* data = getData(dst); | ||||||
|     ARDUINOJSON_ASSERT_INTEGER_TYPE_IS_SUPPORTED(T); |     ARDUINOJSON_ASSERT_INTEGER_TYPE_IS_SUPPORTED(T); | ||||||
|     if (!data) |     if (!data) | ||||||
|       return false; |       return false; | ||||||
|     data->setInteger(value); |     data->setInteger(src); | ||||||
|     return true; |     return true; | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   static T fromJson(VariantConstRef variant) { |   static T fromJson(VariantConstRef src) { | ||||||
|     ARDUINOJSON_ASSERT_INTEGER_TYPE_IS_SUPPORTED(T); |     ARDUINOJSON_ASSERT_INTEGER_TYPE_IS_SUPPORTED(T); | ||||||
|     const VariantData* data = getData(variant); |     const VariantData* data = getData(src); | ||||||
|     return data ? data->asIntegral<T>() : T(); |     return data ? data->asIntegral<T>() : T(); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   static bool checkJson(VariantConstRef variant) { |   static bool checkJson(VariantConstRef src) { | ||||||
|     const VariantData* data = getData(variant); |     const VariantData* data = getData(src); | ||||||
|     return data && data->isInteger<T>(); |     return data && data->isInteger<T>(); | ||||||
|   } |   } | ||||||
| }; | }; | ||||||
|  |  | ||||||
| template <typename T> | template <typename T> | ||||||
| struct Converter<T, typename enable_if<is_enum<T>::value>::type> { | struct Converter<T, typename enable_if<is_enum<T>::value>::type> { | ||||||
|   static bool toJson(VariantRef variant, T value) { |   static bool toJson(T src, VariantRef dst) { | ||||||
|     return variant.set(static_cast<Integer>(value)); |     return dst.set(static_cast<Integer>(src)); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   static T fromJson(VariantConstRef variant) { |   static T fromJson(VariantConstRef src) { | ||||||
|     const VariantData* data = getData(variant); |     const VariantData* data = getData(src); | ||||||
|     return data ? static_cast<T>(data->asIntegral<int>()) : T(); |     return data ? static_cast<T>(data->asIntegral<int>()) : T(); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   static bool checkJson(VariantConstRef variant) { |   static bool checkJson(VariantConstRef src) { | ||||||
|     const VariantData* data = getData(variant); |     const VariantData* data = getData(src); | ||||||
|     return data && data->isInteger<int>(); |     return data && data->isInteger<int>(); | ||||||
|   } |   } | ||||||
| }; | }; | ||||||
|  |  | ||||||
| template <> | template <> | ||||||
| struct Converter<bool> { | struct Converter<bool> { | ||||||
|   static bool toJson(VariantRef variant, bool value) { |   static bool toJson(bool src, VariantRef dst) { | ||||||
|     VariantData* data = getData(variant); |     VariantData* data = getData(dst); | ||||||
|     if (!data) |     if (!data) | ||||||
|       return false; |       return false; | ||||||
|     data->setBoolean(value); |     data->setBoolean(src); | ||||||
|     return true; |     return true; | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   static bool fromJson(VariantConstRef variant) { |   static bool fromJson(VariantConstRef src) { | ||||||
|     const VariantData* data = getData(variant); |     const VariantData* data = getData(src); | ||||||
|     return data ? data->asBoolean() : false; |     return data ? data->asBoolean() : false; | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   static bool checkJson(VariantConstRef variant) { |   static bool checkJson(VariantConstRef src) { | ||||||
|     const VariantData* data = getData(variant); |     const VariantData* data = getData(src); | ||||||
|     return data && data->isBoolean(); |     return data && data->isBoolean(); | ||||||
|   } |   } | ||||||
| }; | }; | ||||||
|  |  | ||||||
| template <typename T> | template <typename T> | ||||||
| struct Converter<T, typename enable_if<is_floating_point<T>::value>::type> { | struct Converter<T, typename enable_if<is_floating_point<T>::value>::type> { | ||||||
|   static bool toJson(VariantRef variant, T value) { |   static bool toJson(T src, VariantRef dst) { | ||||||
|     VariantData* data = getData(variant); |     VariantData* data = getData(dst); | ||||||
|     if (!data) |     if (!data) | ||||||
|       return false; |       return false; | ||||||
|     data->setFloat(static_cast<Float>(value)); |     data->setFloat(static_cast<Float>(src)); | ||||||
|     return true; |     return true; | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   static T fromJson(VariantConstRef variant) { |   static T fromJson(VariantConstRef src) { | ||||||
|     const VariantData* data = getData(variant); |     const VariantData* data = getData(src); | ||||||
|     return data ? data->asFloat<T>() : false; |     return data ? data->asFloat<T>() : false; | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   static bool checkJson(VariantConstRef variant) { |   static bool checkJson(VariantConstRef src) { | ||||||
|     const VariantData* data = getData(variant); |     const VariantData* data = getData(src); | ||||||
|     return data && data->isFloat(); |     return data && data->isFloat(); | ||||||
|   } |   } | ||||||
| }; | }; | ||||||
|  |  | ||||||
| template <> | template <> | ||||||
| struct Converter<const char*> { | struct Converter<const char*> { | ||||||
|   static bool toJson(VariantRef variant, const char* value) { |   static bool toJson(const char* src, VariantRef dst) { | ||||||
|     return variantSetString(getData(variant), adaptString(value), |     return variantSetString(getData(dst), adaptString(src), getPool(dst)); | ||||||
|                             getPool(variant)); |  | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   static const char* fromJson(VariantConstRef variant) { |   static const char* fromJson(VariantConstRef src) { | ||||||
|     const VariantData* data = getData(variant); |     const VariantData* data = getData(src); | ||||||
|     return data ? data->asString() : 0; |     return data ? data->asString() : 0; | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   static bool checkJson(VariantConstRef variant) { |   static bool checkJson(VariantConstRef src) { | ||||||
|     const VariantData* data = getData(variant); |     const VariantData* data = getData(src); | ||||||
|     return data && data->isString(); |     return data && data->isString(); | ||||||
|   } |   } | ||||||
| }; | }; | ||||||
|  |  | ||||||
| template <typename T> | template <typename T> | ||||||
| inline typename enable_if<IsString<T>::value, bool>::type convertToJson( | inline typename enable_if<IsString<T>::value, bool>::type convertToJson( | ||||||
|     VariantRef variant, const T& value) { |     const T& src, VariantRef dst) { | ||||||
|   VariantData* data = getData(variant); |   VariantData* data = getData(dst); | ||||||
|   MemoryPool* pool = getPool(variant); |   MemoryPool* pool = getPool(dst); | ||||||
|   return variantSetString(data, adaptString(value), pool); |   return variantSetString(data, adaptString(src), pool); | ||||||
| } | } | ||||||
|  |  | ||||||
| template <typename T> | template <typename T> | ||||||
| inline typename enable_if<IsWriteableString<T>::value>::type convertFromJson( | inline typename enable_if<IsWriteableString<T>::value>::type convertFromJson( | ||||||
|     T& value, VariantConstRef variant) { |     VariantConstRef src, T& dst) { | ||||||
|   const VariantData* data = getData(variant); |   const VariantData* data = getData(src); | ||||||
|   const char* cstr = data != 0 ? data->asString() : 0; |   const char* cstr = data != 0 ? data->asString() : 0; | ||||||
|   if (cstr) |   if (cstr) | ||||||
|     value = cstr; |     dst = cstr; | ||||||
|   else |   else | ||||||
|     serializeJson(variant, value); |     serializeJson(src, dst); | ||||||
| } | } | ||||||
|  |  | ||||||
| template <typename T> | template <typename T> | ||||||
| inline typename enable_if<IsWriteableString<T>::value, bool>::type | inline typename enable_if<IsWriteableString<T>::value, bool>::type | ||||||
| canConvertFromJson(T&, VariantConstRef variant) { | canConvertFromJson(VariantConstRef src, const T&) { | ||||||
|   const VariantData* data = getData(variant); |   const VariantData* data = getData(src); | ||||||
|   return data && data->isString(); |   return data && data->isString(); | ||||||
| } | } | ||||||
|  |  | ||||||
| template <> | template <> | ||||||
| struct Converter<SerializedValue<const char*> > { | struct Converter<SerializedValue<const char*> > { | ||||||
|   static bool toJson(VariantRef variant, SerializedValue<const char*> value) { |   static bool toJson(SerializedValue<const char*> src, VariantRef dst) { | ||||||
|     VariantData* data = getData(variant); |     VariantData* data = getData(dst); | ||||||
|     if (!data) |     if (!data) | ||||||
|       return false; |       return false; | ||||||
|     data->setLinkedRaw(value); |     data->setLinkedRaw(src); | ||||||
|     return true; |     return true; | ||||||
|   } |   } | ||||||
| }; | }; | ||||||
| @@ -179,10 +178,10 @@ struct Converter<SerializedValue<const char*> > { | |||||||
| template <typename T> | template <typename T> | ||||||
| struct Converter<SerializedValue<T>, | struct Converter<SerializedValue<T>, | ||||||
|                  typename enable_if<!is_same<const char*, T>::value>::type> { |                  typename enable_if<!is_same<const char*, T>::value>::type> { | ||||||
|   static bool toJson(VariantRef variant, SerializedValue<T> value) { |   static bool toJson(SerializedValue<T> src, VariantRef dst) { | ||||||
|     VariantData* data = getData(variant); |     VariantData* data = getData(dst); | ||||||
|     MemoryPool* pool = getPool(variant); |     MemoryPool* pool = getPool(dst); | ||||||
|     return data != 0 && data->setOwnedRaw(value, pool); |     return data != 0 && data->setOwnedRaw(src, pool); | ||||||
|   } |   } | ||||||
| }; | }; | ||||||
|  |  | ||||||
| @@ -190,15 +189,15 @@ struct Converter<SerializedValue<T>, | |||||||
|  |  | ||||||
| template <> | template <> | ||||||
| struct Converter<decltype(nullptr)> { | struct Converter<decltype(nullptr)> { | ||||||
|   static bool toJson(VariantRef variant, decltype(nullptr)) { |   static bool toJson(decltype(nullptr), VariantRef dst) { | ||||||
|     variantSetNull(getData(variant)); |     variantSetNull(getData(dst)); | ||||||
|     return true; |     return true; | ||||||
|   } |   } | ||||||
|   static decltype(nullptr) fromJson(VariantConstRef) { |   static decltype(nullptr) fromJson(VariantConstRef) { | ||||||
|     return nullptr; |     return nullptr; | ||||||
|   } |   } | ||||||
|   static bool checkJson(VariantConstRef variant) { |   static bool checkJson(VariantConstRef src) { | ||||||
|     const VariantData* data = getData(variant); |     const VariantData* data = getData(src); | ||||||
|     return data == 0 || data->isNull(); |     return data == 0 || data->isNull(); | ||||||
|   } |   } | ||||||
| }; | }; | ||||||
| @@ -248,13 +247,13 @@ class MemoryPoolPrint : public Print { | |||||||
|   size_t _capacity; |   size_t _capacity; | ||||||
| }; | }; | ||||||
|  |  | ||||||
| inline bool convertToJson(VariantRef variant, const ::Printable& value) { | inline bool convertToJson(const ::Printable& src, VariantRef dst) { | ||||||
|   MemoryPool* pool = getPool(variant); |   MemoryPool* pool = getPool(dst); | ||||||
|   VariantData* data = getData(variant); |   VariantData* data = getData(dst); | ||||||
|   if (!pool || !data) |   if (!pool || !data) | ||||||
|     return false; |     return false; | ||||||
|   MemoryPoolPrint print(pool); |   MemoryPoolPrint print(pool); | ||||||
|   value.printTo(print); |   src.printTo(print); | ||||||
|   if (print.overflowed()) { |   if (print.overflowed()) { | ||||||
|     pool->markAsOverflowed(); |     pool->markAsOverflowed(); | ||||||
|     data->setNull(); |     data->setNull(); | ||||||
|   | |||||||
| @@ -85,12 +85,12 @@ class VariantRef : public VariantRefBase<VariantData>, | |||||||
|  |  | ||||||
|   template <typename T> |   template <typename T> | ||||||
|   FORCE_INLINE bool set(const T &value) const { |   FORCE_INLINE bool set(const T &value) const { | ||||||
|     return Converter<T>::toJson(*this, value); |     return Converter<T>::toJson(value, *this); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   template <typename T> |   template <typename T> | ||||||
|   FORCE_INLINE bool set(T *value) const { |   FORCE_INLINE bool set(T *value) const { | ||||||
|     return Converter<T *>::toJson(*this, value); |     return Converter<T *>::toJson(value, *this); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   template <typename T> |   template <typename T> | ||||||
| @@ -277,14 +277,14 @@ class VariantConstRef : public VariantRefBase<const VariantData>, | |||||||
|  |  | ||||||
| template <> | template <> | ||||||
| struct Converter<VariantRef> { | struct Converter<VariantRef> { | ||||||
|   static bool toJson(VariantRef variant, VariantRef value) { |   static bool toJson(VariantRef src, VariantRef dst) { | ||||||
|     return variantCopyFrom(getData(variant), getData(value), getPool(variant)); |     return variantCopyFrom(getData(dst), getData(src), getPool(dst)); | ||||||
|   } |   } | ||||||
|   static VariantRef fromJson(VariantRef variant) { |   static VariantRef fromJson(VariantRef src) { | ||||||
|     return variant; |     return src; | ||||||
|   } |   } | ||||||
|   static bool checkJson(VariantRef variant) { |   static bool checkJson(VariantRef src) { | ||||||
|     VariantData *data = getData(variant); |     VariantData *data = getData(src); | ||||||
|     return !!data; |     return !!data; | ||||||
|   } |   } | ||||||
|   static bool checkJson(VariantConstRef) { |   static bool checkJson(VariantConstRef) { | ||||||
| @@ -294,16 +294,16 @@ struct Converter<VariantRef> { | |||||||
|  |  | ||||||
| template <> | template <> | ||||||
| struct Converter<VariantConstRef> { | struct Converter<VariantConstRef> { | ||||||
|   static bool toJson(VariantRef variant, VariantConstRef value) { |   static bool toJson(VariantConstRef src, VariantRef dst) { | ||||||
|     return variantCopyFrom(getData(variant), getData(value), getPool(variant)); |     return variantCopyFrom(getData(dst), getData(src), getPool(dst)); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   static VariantConstRef fromJson(VariantConstRef variant) { |   static VariantConstRef fromJson(VariantConstRef src) { | ||||||
|     return VariantConstRef(getData(variant)); |     return VariantConstRef(getData(src)); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   static bool checkJson(VariantConstRef variant) { |   static bool checkJson(VariantConstRef src) { | ||||||
|     const VariantData *data = getData(variant); |     const VariantData *data = getData(src); | ||||||
|     return !!data; |     return !!data; | ||||||
|   } |   } | ||||||
| }; | }; | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user