@@ -19,7 +19,7 @@ inline void VariantImpl::setRawString(SerializedValue<T> value) {
19
19
}
20
20
21
21
inline bool VariantImpl::setLinkedString (const char * s) {
22
- ARDUINOJSON_ASSERT (type () == VariantType::Null ); // must call clear() first
22
+ ARDUINOJSON_ASSERT (isNull () ); // must call clear() first
23
23
ARDUINOJSON_ASSERT (s);
24
24
25
25
auto slotId = resources_->saveStaticString (s);
@@ -33,7 +33,7 @@ inline bool VariantImpl::setLinkedString(const char* s) {
33
33
34
34
template <typename TAdaptedString>
35
35
inline bool VariantImpl::setString (TAdaptedString value) {
36
- ARDUINOJSON_ASSERT (type () == VariantType::Null ); // must call clear() first
36
+ ARDUINOJSON_ASSERT (isNull () ); // must call clear() first
37
37
38
38
if (!data_)
39
39
return false ;
@@ -90,7 +90,10 @@ inline const char* VariantImpl::asLinkedString() const {
90
90
91
91
template <typename T>
92
92
enable_if_t <sizeof (T) == 8 , bool > VariantImpl::setFloat (T value) {
93
- ARDUINOJSON_ASSERT (type () == VariantType::Null); // must call clear() first
93
+ ARDUINOJSON_ASSERT (isNull ()); // must call clear() first
94
+
95
+ if (!data_)
96
+ return false ;
94
97
95
98
float valueAsFloat = static_cast <float >(value);
96
99
@@ -115,7 +118,10 @@ enable_if_t<sizeof(T) == 8, bool> VariantImpl::setFloat(T value) {
115
118
116
119
template <typename T>
117
120
enable_if_t <is_signed<T>::value, bool > VariantImpl::setInteger (T value) {
118
- ARDUINOJSON_ASSERT (type () == VariantType::Null); // must call clear() first
121
+ ARDUINOJSON_ASSERT (isNull ()); // must call clear() first
122
+
123
+ if (!data_)
124
+ return false ;
119
125
120
126
if (canConvertNumber<int32_t >(value)) {
121
127
data_->type = VariantType::Int32;
@@ -136,7 +142,10 @@ enable_if_t<is_signed<T>::value, bool> VariantImpl::setInteger(T value) {
136
142
137
143
template <typename T>
138
144
enable_if_t <is_unsigned<T>::value, bool > VariantImpl::setInteger (T value) {
139
- ARDUINOJSON_ASSERT (type () == VariantType::Null); // must call clear() first
145
+ ARDUINOJSON_ASSERT (isNull ()); // must call clear() first
146
+
147
+ if (!data_)
148
+ return false ;
140
149
141
150
if (canConvertNumber<uint32_t >(value)) {
142
151
data_->type = VariantType::Uint32;
0 commit comments