Optimized JsonVariant::is<float>()

This commit is contained in:
Benoit Blanchon
2021-04-21 13:21:40 +02:00
parent d8a1d1a120
commit 892c37db08
3 changed files with 13 additions and 11 deletions

View File

@@ -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);