mirror of
https://github.com/bblanchon/ArduinoJson.git
synced 2025-07-29 18:27:37 +02:00
Replace slotRelease()
with CollectionData::releaseSlot()
This commit is contained in:
@ -5,7 +5,6 @@
|
||||
#pragma once
|
||||
|
||||
#include <ArduinoJson/Variant/JsonVariant.hpp>
|
||||
#include <ArduinoJson/Variant/SlotFunctions.hpp>
|
||||
|
||||
ARDUINOJSON_BEGIN_PUBLIC_NAMESPACE
|
||||
|
||||
|
@ -111,6 +111,7 @@ class CollectionData {
|
||||
|
||||
private:
|
||||
VariantSlot* getPreviousSlot(VariantSlot*) const;
|
||||
static void releaseSlot(VariantSlot*, ResourceManager*);
|
||||
};
|
||||
|
||||
inline const VariantData* collectionToVariant(
|
||||
|
@ -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
|
||||
|
@ -5,7 +5,6 @@
|
||||
#pragma once
|
||||
|
||||
#include <ArduinoJson/Object/JsonPair.hpp>
|
||||
#include <ArduinoJson/Variant/SlotFunctions.hpp>
|
||||
|
||||
ARDUINOJSON_BEGIN_PUBLIC_NAMESPACE
|
||||
|
||||
|
@ -1,19 +0,0 @@
|
||||
// ArduinoJson - https://arduinojson.org
|
||||
// Copyright © 2014-2023, Benoit BLANCHON
|
||||
// MIT License
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <ArduinoJson/Polyfills/assert.hpp>
|
||||
#include <ArduinoJson/Variant/VariantData.hpp>
|
||||
|
||||
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
|
@ -16,7 +16,6 @@ ARDUINOJSON_BEGIN_PRIVATE_NAMESPACE
|
||||
|
||||
template <typename T>
|
||||
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
|
||||
|
Reference in New Issue
Block a user