Mark JsonArray, JsonObject, and JsonVariant as final

See #2056
This commit is contained in:
Benoit Blanchon
2024-02-18 10:52:07 +01:00
parent 848c0cdc7e
commit 483a2c9101
10 changed files with 20 additions and 14 deletions

View File

@ -1,6 +1,11 @@
ArduinoJson: change log ArduinoJson: change log
======================= =======================
HEAD
----
* Mark `JsonArray`, `JsonObject`, and `JsonVariant` as `final` (issue #2056)
v7.0.3 (2024-02-05) v7.0.3 (2024-02-05)
------ ------

View File

@ -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/v7/api/jsonarray/ // https://arduinojson.org/v7/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:

View File

@ -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/v7/api/jsonarrayconst/ // https://arduinojson.org/v7/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;

View File

@ -25,7 +25,7 @@ class Ptr {
T value_; T value_;
}; };
class JsonArrayIterator { class JsonArrayIterator final {
friend class JsonArray; friend class JsonArray;
public: public:
@ -59,7 +59,7 @@ class JsonArrayIterator {
detail::ResourceManager* resources_; detail::ResourceManager* resources_;
}; };
class JsonArrayConstIterator { class JsonArrayConstIterator final {
friend class JsonArray; friend class JsonArray;
public: public:

View File

@ -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/v7/api/jsonobject/ // https://arduinojson.org/v7/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:

View File

@ -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/v7/api/jsonobjectconst/ // https://arduinojson.org/v7/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;

View File

@ -8,7 +8,7 @@
ARDUINOJSON_BEGIN_PUBLIC_NAMESPACE ARDUINOJSON_BEGIN_PUBLIC_NAMESPACE
class JsonObjectIterator { class JsonObjectIterator final {
friend class JsonObject; friend class JsonObject;
public: public:
@ -43,7 +43,7 @@ class JsonObjectIterator {
detail::ResourceManager* resources_; detail::ResourceManager* resources_;
}; };
class JsonObjectConstIterator { class JsonObjectConstIterator final {
friend class JsonObject; friend class JsonObject;
public: public:

View File

@ -12,7 +12,7 @@ ARDUINOJSON_BEGIN_PUBLIC_NAMESPACE
// A key-value pair. // A key-value pair.
// https://arduinojson.org/v7/api/jsonobject/begin_end/ // https://arduinojson.org/v7/api/jsonobject/begin_end/
class JsonPair { class JsonPair final {
public: public:
// INTERNAL USE ONLY // INTERNAL USE ONLY
JsonPair(detail::ObjectData::iterator iterator, JsonPair(detail::ObjectData::iterator iterator,
@ -41,7 +41,7 @@ class JsonPair {
// A read-only key-value pair. // A read-only key-value pair.
// https://arduinojson.org/v7/api/jsonobjectconst/begin_end/ // https://arduinojson.org/v7/api/jsonobjectconst/begin_end/
class JsonPairConst { class JsonPairConst final {
public: public:
JsonPairConst(detail::ObjectData::iterator iterator, JsonPairConst(detail::ObjectData::iterator iterator,
const detail::ResourceManager* resources) const detail::ResourceManager* resources)

View File

@ -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/v7/api/jsonvariant/ // https://arduinojson.org/v7/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:

View File

@ -23,8 +23,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/v7/api/jsonarrayconst/ // https://arduinojson.org/v7/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: