From 8d3d9c718d3ab45d7cc7268a5773c2e7ad19c967 Mon Sep 17 00:00:00 2001 From: Benoit Blanchon Date: Sun, 18 Feb 2024 20:01:04 +0100 Subject: [PATCH] Remove `final` from `JsonArray`, `JsonObject`, and `JsonVariant` MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `final` breaks ThingsBoard ಠ_ಠ https://github.com/thingsboard/thingsboard-client-sdk/blob/v0.12.2/src/RPC_Response.h#L10 See #2056. This reverts commit 5ed9daae915a7a91955535b83dbc491e09c961cd. --- CHANGELOG.md | 1 - src/ArduinoJson/Array/JsonArray.hpp | 2 +- src/ArduinoJson/Array/JsonArrayConst.hpp | 2 +- src/ArduinoJson/Array/JsonArrayIterator.hpp | 8 ++++---- src/ArduinoJson/Object/JsonObject.hpp | 2 +- src/ArduinoJson/Object/JsonObjectConst.hpp | 2 +- src/ArduinoJson/Object/JsonObjectIterator.hpp | 8 ++++---- src/ArduinoJson/Object/JsonPair.hpp | 4 ++-- src/ArduinoJson/Variant/JsonVariant.hpp | 4 ++-- src/ArduinoJson/Variant/JsonVariantConst.hpp | 5 ++--- 10 files changed, 18 insertions(+), 20 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index dc66d3c9..1758f310 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,6 @@ HEAD ---- * 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) ------- diff --git a/src/ArduinoJson/Array/JsonArray.hpp b/src/ArduinoJson/Array/JsonArray.hpp index 6a2944e8..d208e417 100644 --- a/src/ArduinoJson/Array/JsonArray.hpp +++ b/src/ArduinoJson/Array/JsonArray.hpp @@ -13,7 +13,7 @@ class JsonObject; // A reference to an array in a JsonDocument // https://arduinojson.org/v6/api/jsonarray/ -class JsonArray final : public detail::VariantOperators { +class JsonArray : public detail::VariantOperators { friend class detail::VariantAttorney; public: diff --git a/src/ArduinoJson/Array/JsonArrayConst.hpp b/src/ArduinoJson/Array/JsonArrayConst.hpp index 8024fd51..6a6463c8 100644 --- a/src/ArduinoJson/Array/JsonArrayConst.hpp +++ b/src/ArduinoJson/Array/JsonArrayConst.hpp @@ -14,7 +14,7 @@ class JsonObject; // A read-only reference to an array in a JsonDocument // https://arduinojson.org/v6/api/jsonarrayconst/ -class JsonArrayConst final : public detail::VariantOperators { +class JsonArrayConst : public detail::VariantOperators { friend class JsonArray; friend class detail::VariantAttorney; diff --git a/src/ArduinoJson/Array/JsonArrayIterator.hpp b/src/ArduinoJson/Array/JsonArrayIterator.hpp index b6f39976..d9048b28 100644 --- a/src/ArduinoJson/Array/JsonArrayIterator.hpp +++ b/src/ArduinoJson/Array/JsonArrayIterator.hpp @@ -9,7 +9,7 @@ ARDUINOJSON_BEGIN_PUBLIC_NAMESPACE -class VariantPtr final { +class VariantPtr { public: VariantPtr(detail::MemoryPool* pool, detail::VariantData* data) : variant_(pool, data) {} @@ -26,7 +26,7 @@ class VariantPtr final { JsonVariant variant_; }; -class JsonArrayIterator final { +class JsonArrayIterator { friend class JsonArray; public: @@ -65,7 +65,7 @@ class JsonArrayIterator final { detail::VariantSlot* slot_; }; -class VariantConstPtr final { +class VariantConstPtr { public: VariantConstPtr(const detail::VariantData* data) : variant_(data) {} @@ -81,7 +81,7 @@ class VariantConstPtr final { JsonVariantConst variant_; }; -class JsonArrayConstIterator final { +class JsonArrayConstIterator { friend class JsonArray; public: diff --git a/src/ArduinoJson/Object/JsonObject.hpp b/src/ArduinoJson/Object/JsonObject.hpp index 1a4e0cfe..7cdc1c76 100644 --- a/src/ArduinoJson/Object/JsonObject.hpp +++ b/src/ArduinoJson/Object/JsonObject.hpp @@ -13,7 +13,7 @@ class JsonArray; // A reference to an object in a JsonDocument. // https://arduinojson.org/v6/api/jsonobject/ -class JsonObject final : public detail::VariantOperators { +class JsonObject : public detail::VariantOperators { friend class detail::VariantAttorney; public: diff --git a/src/ArduinoJson/Object/JsonObjectConst.hpp b/src/ArduinoJson/Object/JsonObjectConst.hpp index 6520c76d..e9b5e483 100644 --- a/src/ArduinoJson/Object/JsonObjectConst.hpp +++ b/src/ArduinoJson/Object/JsonObjectConst.hpp @@ -11,7 +11,7 @@ ARDUINOJSON_BEGIN_PUBLIC_NAMESPACE // A read-only reference to an object in a JsonDocument. // https://arduinojson.org/v6/api/jsonobjectconst/ -class JsonObjectConst final : public detail::VariantOperators { +class JsonObjectConst : public detail::VariantOperators { friend class JsonObject; friend class detail::VariantAttorney; diff --git a/src/ArduinoJson/Object/JsonObjectIterator.hpp b/src/ArduinoJson/Object/JsonObjectIterator.hpp index 750394d5..55c09ed7 100644 --- a/src/ArduinoJson/Object/JsonObjectIterator.hpp +++ b/src/ArduinoJson/Object/JsonObjectIterator.hpp @@ -9,7 +9,7 @@ ARDUINOJSON_BEGIN_PUBLIC_NAMESPACE -class JsonPairPtr final { +class JsonPairPtr { public: JsonPairPtr(detail::MemoryPool* pool, detail::VariantSlot* slot) : pair_(pool, slot) {} @@ -26,7 +26,7 @@ class JsonPairPtr final { JsonPair pair_; }; -class JsonObjectIterator final { +class JsonObjectIterator { friend class JsonObject; public: @@ -66,7 +66,7 @@ class JsonObjectIterator final { detail::VariantSlot* slot_; }; -class JsonPairConstPtr final { +class JsonPairConstPtr { public: JsonPairConstPtr(const detail::VariantSlot* slot) : pair_(slot) {} @@ -82,7 +82,7 @@ class JsonPairConstPtr final { JsonPairConst pair_; }; -class JsonObjectConstIterator final { +class JsonObjectConstIterator { friend class JsonObject; public: diff --git a/src/ArduinoJson/Object/JsonPair.hpp b/src/ArduinoJson/Object/JsonPair.hpp index 350979fd..862a6579 100644 --- a/src/ArduinoJson/Object/JsonPair.hpp +++ b/src/ArduinoJson/Object/JsonPair.hpp @@ -12,7 +12,7 @@ ARDUINOJSON_BEGIN_PUBLIC_NAMESPACE // A key-value pair. // https://arduinojson.org/v6/api/jsonobject/begin_end/ -class JsonPair final { +class JsonPair { public: // INTERNAL USE ONLY JsonPair(detail::MemoryPool* pool, detail::VariantSlot* slot) { @@ -40,7 +40,7 @@ class JsonPair final { // A read-only key-value pair. // https://arduinojson.org/v6/api/jsonobjectconst/begin_end/ -class JsonPairConst final { +class JsonPairConst { public: JsonPairConst(const detail::VariantSlot* slot) { if (slot) { diff --git a/src/ArduinoJson/Variant/JsonVariant.hpp b/src/ArduinoJson/Variant/JsonVariant.hpp index 81408801..d1f122e9 100644 --- a/src/ArduinoJson/Variant/JsonVariant.hpp +++ b/src/ArduinoJson/Variant/JsonVariant.hpp @@ -10,8 +10,8 @@ ARDUINOJSON_BEGIN_PUBLIC_NAMESPACE // A reference to a value in a JsonDocument. // https://arduinojson.org/v6/api/jsonvariant/ -class JsonVariant final : public detail::VariantRefBase, - public detail::VariantOperators { +class JsonVariant : public detail::VariantRefBase, + public detail::VariantOperators { friend class detail::VariantAttorney; public: diff --git a/src/ArduinoJson/Variant/JsonVariantConst.hpp b/src/ArduinoJson/Variant/JsonVariantConst.hpp index e90ba080..606df083 100644 --- a/src/ArduinoJson/Variant/JsonVariantConst.hpp +++ b/src/ArduinoJson/Variant/JsonVariantConst.hpp @@ -24,9 +24,8 @@ class JsonObject; // A read-only reference to a value in a JsonDocument // https://arduinojson.org/v6/api/jsonarrayconst/ -class JsonVariantConst final - : public detail::VariantTag, - public detail::VariantOperators { +class JsonVariantConst : public detail::VariantTag, + public detail::VariantOperators { friend class detail::VariantAttorney; public: