forked from bblanchon/ArduinoJson
Mark JsonArray
, JsonObject
, and JsonVariant
as final
See #2056
Ported from 483a2c9
This commit is contained in:
@ -5,6 +5,7 @@ HEAD
|
|||||||
----
|
----
|
||||||
|
|
||||||
* Improve error messages when using `char` or `char*` (issue #2043)
|
* Improve error messages when using `char` or `char*` (issue #2043)
|
||||||
|
* Mark `JsonArray`, `JsonObject`, and `JsonVariant` as `final` (issue #2056)
|
||||||
|
|
||||||
v6.21.5 (2024-01-10)
|
v6.21.5 (2024-01-10)
|
||||||
-------
|
-------
|
||||||
|
@ -13,7 +13,7 @@ class JsonObject;
|
|||||||
|
|
||||||
// A reference to an array in a JsonDocument
|
// A reference to an array in a JsonDocument
|
||||||
// https://arduinojson.org/v6/api/jsonarray/
|
// https://arduinojson.org/v6/api/jsonarray/
|
||||||
class JsonArray : public detail::VariantOperators<JsonArray> {
|
class JsonArray final : public detail::VariantOperators<JsonArray> {
|
||||||
friend class detail::VariantAttorney;
|
friend class detail::VariantAttorney;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
@ -14,7 +14,7 @@ class JsonObject;
|
|||||||
|
|
||||||
// A read-only reference to an array in a JsonDocument
|
// A read-only reference to an array in a JsonDocument
|
||||||
// https://arduinojson.org/v6/api/jsonarrayconst/
|
// https://arduinojson.org/v6/api/jsonarrayconst/
|
||||||
class JsonArrayConst : public detail::VariantOperators<JsonArrayConst> {
|
class JsonArrayConst final : public detail::VariantOperators<JsonArrayConst> {
|
||||||
friend class JsonArray;
|
friend class JsonArray;
|
||||||
friend class detail::VariantAttorney;
|
friend class detail::VariantAttorney;
|
||||||
|
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
ARDUINOJSON_BEGIN_PUBLIC_NAMESPACE
|
ARDUINOJSON_BEGIN_PUBLIC_NAMESPACE
|
||||||
|
|
||||||
class VariantPtr {
|
class VariantPtr final {
|
||||||
public:
|
public:
|
||||||
VariantPtr(detail::MemoryPool* pool, detail::VariantData* data)
|
VariantPtr(detail::MemoryPool* pool, detail::VariantData* data)
|
||||||
: variant_(pool, data) {}
|
: variant_(pool, data) {}
|
||||||
@ -26,7 +26,7 @@ class VariantPtr {
|
|||||||
JsonVariant variant_;
|
JsonVariant variant_;
|
||||||
};
|
};
|
||||||
|
|
||||||
class JsonArrayIterator {
|
class JsonArrayIterator final {
|
||||||
friend class JsonArray;
|
friend class JsonArray;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
@ -65,7 +65,7 @@ class JsonArrayIterator {
|
|||||||
detail::VariantSlot* slot_;
|
detail::VariantSlot* slot_;
|
||||||
};
|
};
|
||||||
|
|
||||||
class VariantConstPtr {
|
class VariantConstPtr final {
|
||||||
public:
|
public:
|
||||||
VariantConstPtr(const detail::VariantData* data) : variant_(data) {}
|
VariantConstPtr(const detail::VariantData* data) : variant_(data) {}
|
||||||
|
|
||||||
@ -81,7 +81,7 @@ class VariantConstPtr {
|
|||||||
JsonVariantConst variant_;
|
JsonVariantConst variant_;
|
||||||
};
|
};
|
||||||
|
|
||||||
class JsonArrayConstIterator {
|
class JsonArrayConstIterator final {
|
||||||
friend class JsonArray;
|
friend class JsonArray;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
@ -13,7 +13,7 @@ class JsonArray;
|
|||||||
|
|
||||||
// A reference to an object in a JsonDocument.
|
// A reference to an object in a JsonDocument.
|
||||||
// https://arduinojson.org/v6/api/jsonobject/
|
// https://arduinojson.org/v6/api/jsonobject/
|
||||||
class JsonObject : public detail::VariantOperators<JsonObject> {
|
class JsonObject final : public detail::VariantOperators<JsonObject> {
|
||||||
friend class detail::VariantAttorney;
|
friend class detail::VariantAttorney;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
@ -11,7 +11,7 @@ ARDUINOJSON_BEGIN_PUBLIC_NAMESPACE
|
|||||||
|
|
||||||
// A read-only reference to an object in a JsonDocument.
|
// A read-only reference to an object in a JsonDocument.
|
||||||
// https://arduinojson.org/v6/api/jsonobjectconst/
|
// https://arduinojson.org/v6/api/jsonobjectconst/
|
||||||
class JsonObjectConst : public detail::VariantOperators<JsonObjectConst> {
|
class JsonObjectConst final : public detail::VariantOperators<JsonObjectConst> {
|
||||||
friend class JsonObject;
|
friend class JsonObject;
|
||||||
friend class detail::VariantAttorney;
|
friend class detail::VariantAttorney;
|
||||||
|
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
ARDUINOJSON_BEGIN_PUBLIC_NAMESPACE
|
ARDUINOJSON_BEGIN_PUBLIC_NAMESPACE
|
||||||
|
|
||||||
class JsonPairPtr {
|
class JsonPairPtr final {
|
||||||
public:
|
public:
|
||||||
JsonPairPtr(detail::MemoryPool* pool, detail::VariantSlot* slot)
|
JsonPairPtr(detail::MemoryPool* pool, detail::VariantSlot* slot)
|
||||||
: pair_(pool, slot) {}
|
: pair_(pool, slot) {}
|
||||||
@ -26,7 +26,7 @@ class JsonPairPtr {
|
|||||||
JsonPair pair_;
|
JsonPair pair_;
|
||||||
};
|
};
|
||||||
|
|
||||||
class JsonObjectIterator {
|
class JsonObjectIterator final {
|
||||||
friend class JsonObject;
|
friend class JsonObject;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
@ -66,7 +66,7 @@ class JsonObjectIterator {
|
|||||||
detail::VariantSlot* slot_;
|
detail::VariantSlot* slot_;
|
||||||
};
|
};
|
||||||
|
|
||||||
class JsonPairConstPtr {
|
class JsonPairConstPtr final {
|
||||||
public:
|
public:
|
||||||
JsonPairConstPtr(const detail::VariantSlot* slot) : pair_(slot) {}
|
JsonPairConstPtr(const detail::VariantSlot* slot) : pair_(slot) {}
|
||||||
|
|
||||||
@ -82,7 +82,7 @@ class JsonPairConstPtr {
|
|||||||
JsonPairConst pair_;
|
JsonPairConst pair_;
|
||||||
};
|
};
|
||||||
|
|
||||||
class JsonObjectConstIterator {
|
class JsonObjectConstIterator final {
|
||||||
friend class JsonObject;
|
friend class JsonObject;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
@ -12,7 +12,7 @@ ARDUINOJSON_BEGIN_PUBLIC_NAMESPACE
|
|||||||
|
|
||||||
// A key-value pair.
|
// A key-value pair.
|
||||||
// https://arduinojson.org/v6/api/jsonobject/begin_end/
|
// https://arduinojson.org/v6/api/jsonobject/begin_end/
|
||||||
class JsonPair {
|
class JsonPair final {
|
||||||
public:
|
public:
|
||||||
// INTERNAL USE ONLY
|
// INTERNAL USE ONLY
|
||||||
JsonPair(detail::MemoryPool* pool, detail::VariantSlot* slot) {
|
JsonPair(detail::MemoryPool* pool, detail::VariantSlot* slot) {
|
||||||
@ -40,7 +40,7 @@ class JsonPair {
|
|||||||
|
|
||||||
// A read-only key-value pair.
|
// A read-only key-value pair.
|
||||||
// https://arduinojson.org/v6/api/jsonobjectconst/begin_end/
|
// https://arduinojson.org/v6/api/jsonobjectconst/begin_end/
|
||||||
class JsonPairConst {
|
class JsonPairConst final {
|
||||||
public:
|
public:
|
||||||
JsonPairConst(const detail::VariantSlot* slot) {
|
JsonPairConst(const detail::VariantSlot* slot) {
|
||||||
if (slot) {
|
if (slot) {
|
||||||
|
@ -10,8 +10,8 @@ ARDUINOJSON_BEGIN_PUBLIC_NAMESPACE
|
|||||||
|
|
||||||
// A reference to a value in a JsonDocument.
|
// A reference to a value in a JsonDocument.
|
||||||
// https://arduinojson.org/v6/api/jsonvariant/
|
// https://arduinojson.org/v6/api/jsonvariant/
|
||||||
class JsonVariant : public detail::VariantRefBase<JsonVariant>,
|
class JsonVariant final : public detail::VariantRefBase<JsonVariant>,
|
||||||
public detail::VariantOperators<JsonVariant> {
|
public detail::VariantOperators<JsonVariant> {
|
||||||
friend class detail::VariantAttorney;
|
friend class detail::VariantAttorney;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
@ -24,8 +24,9 @@ class JsonObject;
|
|||||||
|
|
||||||
// A read-only reference to a value in a JsonDocument
|
// A read-only reference to a value in a JsonDocument
|
||||||
// https://arduinojson.org/v6/api/jsonarrayconst/
|
// https://arduinojson.org/v6/api/jsonarrayconst/
|
||||||
class JsonVariantConst : public detail::VariantTag,
|
class JsonVariantConst final
|
||||||
public detail::VariantOperators<JsonVariantConst> {
|
: public detail::VariantTag,
|
||||||
|
public detail::VariantOperators<JsonVariantConst> {
|
||||||
friend class detail::VariantAttorney;
|
friend class detail::VariantAttorney;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
Reference in New Issue
Block a user