mirror of
https://github.com/bblanchon/ArduinoJson.git
synced 2025-07-30 02:37:35 +02:00
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