Remove final from JsonArray, JsonObject, and JsonVariant

`final` breaks ThingsBoard ಠ_ಠ
https://github.com/thingsboard/thingsboard-client-sdk/blob/v0.12.2/src/RPC_Response.h#L10

See #2056.
This reverts commit 5ed9daae91.
This commit is contained in:
Benoit Blanchon
2024-02-18 20:01:04 +01:00
parent 5ed9daae91
commit 8d3d9c718d
10 changed files with 18 additions and 20 deletions

View File

@ -5,7 +5,6 @@ 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)
------- -------

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/v6/api/jsonarray/ // https://arduinojson.org/v6/api/jsonarray/
class JsonArray final : public detail::VariantOperators<JsonArray> { class JsonArray : 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/v6/api/jsonarrayconst/ // https://arduinojson.org/v6/api/jsonarrayconst/
class JsonArrayConst final : public detail::VariantOperators<JsonArrayConst> { class JsonArrayConst : public detail::VariantOperators<JsonArrayConst> {
friend class JsonArray; friend class JsonArray;
friend class detail::VariantAttorney; friend class detail::VariantAttorney;

View File

@ -9,7 +9,7 @@
ARDUINOJSON_BEGIN_PUBLIC_NAMESPACE ARDUINOJSON_BEGIN_PUBLIC_NAMESPACE
class VariantPtr final { class VariantPtr {
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 final {
JsonVariant variant_; JsonVariant variant_;
}; };
class JsonArrayIterator final { class JsonArrayIterator {
friend class JsonArray; friend class JsonArray;
public: public:
@ -65,7 +65,7 @@ class JsonArrayIterator final {
detail::VariantSlot* slot_; detail::VariantSlot* slot_;
}; };
class VariantConstPtr final { class VariantConstPtr {
public: public:
VariantConstPtr(const detail::VariantData* data) : variant_(data) {} VariantConstPtr(const detail::VariantData* data) : variant_(data) {}
@ -81,7 +81,7 @@ class VariantConstPtr final {
JsonVariantConst variant_; JsonVariantConst variant_;
}; };
class JsonArrayConstIterator final { class JsonArrayConstIterator {
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/v6/api/jsonobject/ // https://arduinojson.org/v6/api/jsonobject/
class JsonObject final : public detail::VariantOperators<JsonObject> { class JsonObject : 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/v6/api/jsonobjectconst/ // https://arduinojson.org/v6/api/jsonobjectconst/
class JsonObjectConst final : public detail::VariantOperators<JsonObjectConst> { class JsonObjectConst : public detail::VariantOperators<JsonObjectConst> {
friend class JsonObject; friend class JsonObject;
friend class detail::VariantAttorney; friend class detail::VariantAttorney;

View File

@ -9,7 +9,7 @@
ARDUINOJSON_BEGIN_PUBLIC_NAMESPACE ARDUINOJSON_BEGIN_PUBLIC_NAMESPACE
class JsonPairPtr final { class JsonPairPtr {
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 final {
JsonPair pair_; JsonPair pair_;
}; };
class JsonObjectIterator final { class JsonObjectIterator {
friend class JsonObject; friend class JsonObject;
public: public:
@ -66,7 +66,7 @@ class JsonObjectIterator final {
detail::VariantSlot* slot_; detail::VariantSlot* slot_;
}; };
class JsonPairConstPtr final { class JsonPairConstPtr {
public: public:
JsonPairConstPtr(const detail::VariantSlot* slot) : pair_(slot) {} JsonPairConstPtr(const detail::VariantSlot* slot) : pair_(slot) {}
@ -82,7 +82,7 @@ class JsonPairConstPtr final {
JsonPairConst pair_; JsonPairConst pair_;
}; };
class JsonObjectConstIterator final { class JsonObjectConstIterator {
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/v6/api/jsonobject/begin_end/ // https://arduinojson.org/v6/api/jsonobject/begin_end/
class JsonPair final { class JsonPair {
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 final {
// 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 final { class JsonPairConst {
public: public:
JsonPairConst(const detail::VariantSlot* slot) { JsonPairConst(const detail::VariantSlot* slot) {
if (slot) { if (slot) {

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/v6/api/jsonvariant/ // https://arduinojson.org/v6/api/jsonvariant/
class JsonVariant final : public detail::VariantRefBase<JsonVariant>, class JsonVariant : public detail::VariantRefBase<JsonVariant>,
public detail::VariantOperators<JsonVariant> { public detail::VariantOperators<JsonVariant> {
friend class detail::VariantAttorney; friend class detail::VariantAttorney;
public: public:

View File

@ -24,9 +24,8 @@ 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 final class JsonVariantConst : public detail::VariantTag,
: public detail::VariantTag, public detail::VariantOperators<JsonVariantConst> {
public detail::VariantOperators<JsonVariantConst> {
friend class detail::VariantAttorney; friend class detail::VariantAttorney;
public: public: