Rename flags_ to type_

This commit is contained in:
Benoit Blanchon
2024-08-24 10:53:29 +02:00
parent 09c89dcacf
commit ab72bb8601
2 changed files with 32 additions and 36 deletions

View File

@@ -19,14 +19,14 @@ T parseNumber(const char* s);
class VariantData {
VariantContent content_; // must be first to allow cast from array to variant
uint8_t flags_;
uint8_t type_;
public:
VariantData() : flags_(VALUE_IS_NULL) {}
VariantData() : type_(VALUE_IS_NULL) {}
template <typename TVisitor>
typename TVisitor::result_type accept(TVisitor& visit) const {
switch (type()) {
switch (type_) {
case VALUE_IS_FLOAT:
return visit.visit(content_.asFloat);
@@ -98,7 +98,7 @@ class VariantData {
}
bool asBoolean() const {
switch (type()) {
switch (type_) {
case VALUE_IS_BOOLEAN:
return content_.asBoolean;
case VALUE_IS_SIGNED_INTEGER:
@@ -132,7 +132,7 @@ class VariantData {
template <typename T>
T asFloat() const {
static_assert(is_floating_point<T>::value, "T must be a floating point");
switch (type()) {
switch (type_) {
case VALUE_IS_BOOLEAN:
return static_cast<T>(content_.asBoolean);
case VALUE_IS_UNSIGNED_INTEGER:
@@ -152,7 +152,7 @@ class VariantData {
template <typename T>
T asIntegral() const {
static_assert(is_integral<T>::value, "T must be an integral type");
switch (type()) {
switch (type_) {
case VALUE_IS_BOOLEAN:
return content_.asBoolean;
case VALUE_IS_UNSIGNED_INTEGER:
@@ -179,7 +179,7 @@ class VariantData {
}
JsonString asRawString() const {
switch (type()) {
switch (type_) {
case VALUE_IS_RAW_STRING:
return JsonString(content_.asOwnedString->data,
content_.asOwnedString->length, JsonString::Copied);
@@ -189,7 +189,7 @@ class VariantData {
}
JsonString asString() const {
switch (type()) {
switch (type_) {
case VALUE_IS_LINKED_STRING:
return JsonString(content_.asLinkedString, JsonString::Linked);
case VALUE_IS_OWNED_STRING:
@@ -242,24 +242,24 @@ class VariantData {
}
bool isArray() const {
return (flags_ & VALUE_IS_ARRAY) != 0;
return type_ == VALUE_IS_ARRAY;
}
bool isBoolean() const {
return type() == VALUE_IS_BOOLEAN;
return type_ == VALUE_IS_BOOLEAN;
}
bool isCollection() const {
return (flags_ & COLLECTION_MASK) != 0;
return (type_ & COLLECTION_MASK) != 0;
}
bool isFloat() const {
return (flags_ & NUMBER_BIT) != 0;
return (type_ & NUMBER_BIT) != 0;
}
template <typename T>
bool isInteger() const {
switch (type()) {
switch (type_) {
case VALUE_IS_UNSIGNED_INTEGER:
return canConvertNumber<T>(content_.asUnsignedInteger);
@@ -272,7 +272,7 @@ class VariantData {
}
bool isNull() const {
return type() == VALUE_IS_NULL;
return type_ == VALUE_IS_NULL;
}
static bool isNull(const VariantData* var) {
@@ -282,11 +282,11 @@ class VariantData {
}
bool isObject() const {
return (flags_ & VALUE_IS_OBJECT) != 0;
return type_ == VALUE_IS_OBJECT;
}
bool isString() const {
return type() == VALUE_IS_LINKED_STRING || type() == VALUE_IS_OWNED_STRING;
return type_ == VALUE_IS_LINKED_STRING || type_ == VALUE_IS_OWNED_STRING;
}
size_t nesting(const ResourceManager* resources) const {
@@ -329,11 +329,11 @@ class VariantData {
}
void reset() {
flags_ = VALUE_IS_NULL;
type_ = VALUE_IS_NULL;
}
void setBoolean(bool value) {
setType(VALUE_IS_BOOLEAN);
type_ = VALUE_IS_BOOLEAN;
content_.asBoolean = value;
}
@@ -343,7 +343,7 @@ class VariantData {
}
void setFloat(JsonFloat value) {
setType(VALUE_IS_FLOAT);
type_ = VALUE_IS_FLOAT;
content_.asFloat = value;
}
@@ -354,13 +354,13 @@ class VariantData {
template <typename T>
enable_if_t<is_signed<T>::value> setInteger(T value) {
setType(VALUE_IS_SIGNED_INTEGER);
type_ = VALUE_IS_SIGNED_INTEGER;
content_.asSignedInteger = value;
}
template <typename T>
enable_if_t<is_unsigned<T>::value> setInteger(T value) {
setType(VALUE_IS_UNSIGNED_INTEGER);
type_ = VALUE_IS_UNSIGNED_INTEGER;
content_.asUnsignedInteger = static_cast<JsonUInt>(value);
}
@@ -371,7 +371,7 @@ class VariantData {
}
void setNull() {
setType(VALUE_IS_NULL);
type_ = VALUE_IS_NULL;
}
void setNull(ResourceManager* resources) {
@@ -387,7 +387,7 @@ class VariantData {
void setRawString(StringNode* s) {
ARDUINOJSON_ASSERT(s);
setType(VALUE_IS_RAW_STRING);
type_ = VALUE_IS_RAW_STRING;
content_.asOwnedString = s;
}
@@ -445,13 +445,13 @@ class VariantData {
void setLinkedString(const char* s) {
ARDUINOJSON_ASSERT(s);
setType(VALUE_IS_LINKED_STRING);
type_ = VALUE_IS_LINKED_STRING;
content_.asLinkedString = s;
}
void setOwnedString(StringNode* s) {
ARDUINOJSON_ASSERT(s);
setType(VALUE_IS_OWNED_STRING);
type_ = VALUE_IS_OWNED_STRING;
content_.asOwnedString = s;
}
@@ -470,7 +470,7 @@ class VariantData {
}
ArrayData& toArray() {
setType(VALUE_IS_ARRAY);
type_ = VALUE_IS_ARRAY;
new (&content_.asArray) ArrayData();
return content_.asArray;
}
@@ -487,7 +487,7 @@ class VariantData {
}
ObjectData& toObject() {
setType(VALUE_IS_OBJECT);
type_ = VALUE_IS_OBJECT;
new (&content_.asObject) ObjectData();
return content_.asObject;
}
@@ -504,22 +504,18 @@ class VariantData {
}
uint8_t type() const {
return flags_;
return type_;
}
private:
void release(ResourceManager* resources) {
if (flags_ & OWNED_VALUE_BIT)
if (type_ & OWNED_VALUE_BIT)
resources->dereferenceString(content_.asOwnedString->data);
auto collection = asCollection();
if (collection)
collection->clear(resources);
}
void setType(uint8_t t) {
flags_ = t;
}
};
ARDUINOJSON_END_PRIVATE_NAMESPACE

View File

@@ -18,7 +18,7 @@ class VariantSlot {
// we cannot use composition because it adds padding
// (+20% on ESP8266 for example)
VariantContent content_;
uint8_t flags_;
uint8_t type_;
SlotId next_;
public:
@@ -29,8 +29,8 @@ class VariantSlot {
static void operator delete(void*, void*) noexcept {}
VariantSlot() : flags_(0), next_(NULL_SLOT) {
(void)flags_; // HACK: suppress Clang warning "private field is not used"
VariantSlot() : type_(0), next_(NULL_SLOT) {
(void)type_; // HACK: suppress Clang warning "private field is not used"
}
VariantData* data() {