From f86b22cf4f91095a6bc6daba245ecb6a5206fdd8 Mon Sep 17 00:00:00 2001 From: Benoit Blanchon Date: Mon, 3 Jul 2023 10:26:20 +0200 Subject: [PATCH] Replace `slotRelease()` with `CollectionData::releaseSlot()` --- src/ArduinoJson/Array/JsonArrayIterator.hpp | 1 - src/ArduinoJson/Collection/CollectionData.hpp | 1 + src/ArduinoJson/Collection/CollectionImpl.hpp | 12 ++++++++++-- src/ArduinoJson/Object/JsonObjectIterator.hpp | 1 - src/ArduinoJson/Variant/SlotFunctions.hpp | 19 ------------------- src/ArduinoJson/Variant/VariantData.hpp | 1 - 6 files changed, 11 insertions(+), 24 deletions(-) delete mode 100644 src/ArduinoJson/Variant/SlotFunctions.hpp diff --git a/src/ArduinoJson/Array/JsonArrayIterator.hpp b/src/ArduinoJson/Array/JsonArrayIterator.hpp index 9f6635d0..71aeed9b 100644 --- a/src/ArduinoJson/Array/JsonArrayIterator.hpp +++ b/src/ArduinoJson/Array/JsonArrayIterator.hpp @@ -5,7 +5,6 @@ #pragma once #include -#include ARDUINOJSON_BEGIN_PUBLIC_NAMESPACE diff --git a/src/ArduinoJson/Collection/CollectionData.hpp b/src/ArduinoJson/Collection/CollectionData.hpp index cb61bfce..5d63b2b9 100644 --- a/src/ArduinoJson/Collection/CollectionData.hpp +++ b/src/ArduinoJson/Collection/CollectionData.hpp @@ -111,6 +111,7 @@ class CollectionData { private: VariantSlot* getPreviousSlot(VariantSlot*) const; + static void releaseSlot(VariantSlot*, ResourceManager*); }; inline const VariantData* collectionToVariant( diff --git a/src/ArduinoJson/Collection/CollectionImpl.hpp b/src/ArduinoJson/Collection/CollectionImpl.hpp index c2b1b247..cf192f38 100644 --- a/src/ArduinoJson/Collection/CollectionImpl.hpp +++ b/src/ArduinoJson/Collection/CollectionImpl.hpp @@ -41,7 +41,7 @@ inline void CollectionData::addSlot(VariantSlot* slot) { inline void CollectionData::clear(ResourceManager* resources) { for (auto slot = head_; slot; slot = slot->next()) - slotRelease(slot, resources); + releaseSlot(slot, resources); head_ = 0; tail_ = 0; } @@ -69,7 +69,7 @@ inline void CollectionData::remove(iterator it, ResourceManager* resources) { head_ = next; if (!next) tail_ = prev; - slotRelease(curr, resources); + releaseSlot(curr, resources); } inline size_t CollectionData::memoryUsage() const { @@ -115,4 +115,12 @@ inline void CollectionData::movePointers(ptrdiff_t variantDistance) { slot->data()->movePointers(variantDistance); } +inline void CollectionData::releaseSlot(VariantSlot* slot, + ResourceManager* resources) { + ARDUINOJSON_ASSERT(slot != nullptr); + if (slot->ownsKey()) + resources->dereferenceString(slot->key()); + slot->data()->setNull(resources); +} + ARDUINOJSON_END_PRIVATE_NAMESPACE diff --git a/src/ArduinoJson/Object/JsonObjectIterator.hpp b/src/ArduinoJson/Object/JsonObjectIterator.hpp index 75ecbf7f..75f0c598 100644 --- a/src/ArduinoJson/Object/JsonObjectIterator.hpp +++ b/src/ArduinoJson/Object/JsonObjectIterator.hpp @@ -5,7 +5,6 @@ #pragma once #include -#include ARDUINOJSON_BEGIN_PUBLIC_NAMESPACE diff --git a/src/ArduinoJson/Variant/SlotFunctions.hpp b/src/ArduinoJson/Variant/SlotFunctions.hpp deleted file mode 100644 index 19e4a566..00000000 --- a/src/ArduinoJson/Variant/SlotFunctions.hpp +++ /dev/null @@ -1,19 +0,0 @@ -// ArduinoJson - https://arduinojson.org -// Copyright © 2014-2023, Benoit BLANCHON -// MIT License - -#pragma once - -#include -#include - -ARDUINOJSON_BEGIN_PRIVATE_NAMESPACE - -inline void slotRelease(VariantSlot* slot, ResourceManager* resources) { - ARDUINOJSON_ASSERT(slot != nullptr); - if (slot->ownsKey()) - resources->dereferenceString(slot->key()); - slot->data()->setNull(resources); -} - -ARDUINOJSON_END_PRIVATE_NAMESPACE diff --git a/src/ArduinoJson/Variant/VariantData.hpp b/src/ArduinoJson/Variant/VariantData.hpp index 79719c14..a8f23c2f 100644 --- a/src/ArduinoJson/Variant/VariantData.hpp +++ b/src/ArduinoJson/Variant/VariantData.hpp @@ -16,7 +16,6 @@ ARDUINOJSON_BEGIN_PRIVATE_NAMESPACE template T parseNumber(const char* s); -void slotRelease(VariantSlot* slot, ResourceManager* resources); class VariantData { VariantContent content_; // must be first to allow cast from array to variant