forked from bblanchon/ArduinoJson
Fix null data_
This commit is contained in:
@@ -19,7 +19,7 @@ inline void VariantImpl::setRawString(SerializedValue<T> value) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
inline bool VariantImpl::setLinkedString(const char* s) {
|
inline bool VariantImpl::setLinkedString(const char* s) {
|
||||||
ARDUINOJSON_ASSERT(type() == VariantType::Null); // must call clear() first
|
ARDUINOJSON_ASSERT(isNull()); // must call clear() first
|
||||||
ARDUINOJSON_ASSERT(s);
|
ARDUINOJSON_ASSERT(s);
|
||||||
|
|
||||||
auto slotId = resources_->saveStaticString(s);
|
auto slotId = resources_->saveStaticString(s);
|
||||||
@@ -33,7 +33,7 @@ inline bool VariantImpl::setLinkedString(const char* s) {
|
|||||||
|
|
||||||
template <typename TAdaptedString>
|
template <typename TAdaptedString>
|
||||||
inline bool VariantImpl::setString(TAdaptedString value) {
|
inline bool VariantImpl::setString(TAdaptedString value) {
|
||||||
ARDUINOJSON_ASSERT(type() == VariantType::Null); // must call clear() first
|
ARDUINOJSON_ASSERT(isNull()); // must call clear() first
|
||||||
|
|
||||||
if (!data_)
|
if (!data_)
|
||||||
return false;
|
return false;
|
||||||
@@ -90,7 +90,10 @@ inline const char* VariantImpl::asLinkedString() const {
|
|||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
enable_if_t<sizeof(T) == 8, bool> VariantImpl::setFloat(T value) {
|
enable_if_t<sizeof(T) == 8, bool> VariantImpl::setFloat(T value) {
|
||||||
ARDUINOJSON_ASSERT(type() == VariantType::Null); // must call clear() first
|
ARDUINOJSON_ASSERT(isNull()); // must call clear() first
|
||||||
|
|
||||||
|
if (!data_)
|
||||||
|
return false;
|
||||||
|
|
||||||
float valueAsFloat = static_cast<float>(value);
|
float valueAsFloat = static_cast<float>(value);
|
||||||
|
|
||||||
@@ -115,7 +118,10 @@ enable_if_t<sizeof(T) == 8, bool> VariantImpl::setFloat(T value) {
|
|||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
enable_if_t<is_signed<T>::value, bool> VariantImpl::setInteger(T value) {
|
enable_if_t<is_signed<T>::value, bool> VariantImpl::setInteger(T value) {
|
||||||
ARDUINOJSON_ASSERT(type() == VariantType::Null); // must call clear() first
|
ARDUINOJSON_ASSERT(isNull()); // must call clear() first
|
||||||
|
|
||||||
|
if (!data_)
|
||||||
|
return false;
|
||||||
|
|
||||||
if (canConvertNumber<int32_t>(value)) {
|
if (canConvertNumber<int32_t>(value)) {
|
||||||
data_->type = VariantType::Int32;
|
data_->type = VariantType::Int32;
|
||||||
@@ -136,7 +142,10 @@ enable_if_t<is_signed<T>::value, bool> VariantImpl::setInteger(T value) {
|
|||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
enable_if_t<is_unsigned<T>::value, bool> VariantImpl::setInteger(T value) {
|
enable_if_t<is_unsigned<T>::value, bool> VariantImpl::setInteger(T value) {
|
||||||
ARDUINOJSON_ASSERT(type() == VariantType::Null); // must call clear() first
|
ARDUINOJSON_ASSERT(isNull()); // must call clear() first
|
||||||
|
|
||||||
|
if (!data_)
|
||||||
|
return false;
|
||||||
|
|
||||||
if (canConvertNumber<uint32_t>(value)) {
|
if (canConvertNumber<uint32_t>(value)) {
|
||||||
data_->type = VariantType::Uint32;
|
data_->type = VariantType::Uint32;
|
||||||
|
Reference in New Issue
Block a user