diff --git a/src/ArduinoJson/Variant/VariantContent.hpp b/src/ArduinoJson/Variant/VariantContent.hpp index 54eb4a5d..47bf09cc 100644 --- a/src/ArduinoJson/Variant/VariantContent.hpp +++ b/src/ArduinoJson/Variant/VariantContent.hpp @@ -16,15 +16,18 @@ namespace ARDUINOJSON_NAMESPACE { enum { VALUE_MASK = 0x7F, - VALUE_IS_OWNED = 0x01, + OWNED_VALUE_BIT = 0x01, VALUE_IS_NULL = 0, VALUE_IS_LINKED_RAW = 0x02, VALUE_IS_OWNED_RAW = 0x03, VALUE_IS_LINKED_STRING = 0x04, VALUE_IS_OWNED_STRING = 0x05, - // CAUTION: no VALUE_IS_OWNED below + // CAUTION: no OWNED_VALUE_BIT below + VALUE_IS_BOOLEAN = 0x06, + + NUMBER_BIT = 0x08, VALUE_IS_UNSIGNED_INTEGER = 0x08, VALUE_IS_SIGNED_INTEGER = 0x0A, VALUE_IS_FLOAT = 0x0C, @@ -33,7 +36,7 @@ enum { VALUE_IS_OBJECT = 0x20, VALUE_IS_ARRAY = 0x40, - KEY_IS_OWNED = 0x80 + OWNED_KEY_BIT = 0x80 }; struct RawData { diff --git a/src/ArduinoJson/Variant/VariantData.hpp b/src/ArduinoJson/Variant/VariantData.hpp index 469f607a..82ae745d 100644 --- a/src/ArduinoJson/Variant/VariantData.hpp +++ b/src/ArduinoJson/Variant/VariantData.hpp @@ -141,8 +141,7 @@ class VariantData { } bool isFloat() const { - return type() == VALUE_IS_FLOAT || type() == VALUE_IS_UNSIGNED_INTEGER || - type() == VALUE_IS_SIGNED_INTEGER; + return (_flags & NUMBER_BIT) != 0; } bool isString() const { @@ -308,7 +307,7 @@ class VariantData { } void movePointers(ptrdiff_t stringDistance, ptrdiff_t variantDistance) { - if (_flags & VALUE_IS_OWNED) + if (_flags & OWNED_VALUE_BIT) _content.asString += stringDistance; if (_flags & COLLECTION_MASK) _content.asCollection.movePointers(stringDistance, variantDistance); @@ -320,7 +319,7 @@ class VariantData { private: void setType(uint8_t t) { - _flags &= KEY_IS_OWNED; + _flags &= OWNED_KEY_BIT; _flags |= t; } diff --git a/src/ArduinoJson/Variant/VariantSlot.hpp b/src/ArduinoJson/Variant/VariantSlot.hpp index 46e315e1..a271c1ee 100644 --- a/src/ArduinoJson/Variant/VariantSlot.hpp +++ b/src/ArduinoJson/Variant/VariantSlot.hpp @@ -79,7 +79,7 @@ class VariantSlot { void setKey(const char* k, storage_policies::store_by_copy) { ARDUINOJSON_ASSERT(k != NULL); - _flags |= KEY_IS_OWNED; + _flags |= OWNED_KEY_BIT; _key = k; } @@ -94,7 +94,7 @@ class VariantSlot { } bool ownsKey() const { - return (_flags & KEY_IS_OWNED) != 0; + return (_flags & OWNED_KEY_BIT) != 0; } void clear() { @@ -104,9 +104,9 @@ class VariantSlot { } void movePointers(ptrdiff_t stringDistance, ptrdiff_t variantDistance) { - if (_flags & KEY_IS_OWNED) + if (_flags & OWNED_KEY_BIT) _key += stringDistance; - if (_flags & VALUE_IS_OWNED) + if (_flags & OWNED_VALUE_BIT) _content.asString += stringDistance; if (_flags & COLLECTION_MASK) _content.asCollection.movePointers(stringDistance, variantDistance);