mirror of
https://github.com/bblanchon/ArduinoJson.git
synced 2025-07-30 02:37:35 +02:00
Replace slotRelease()
with CollectionData::releaseSlot()
This commit is contained in:
@ -5,7 +5,6 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <ArduinoJson/Variant/JsonVariant.hpp>
|
#include <ArduinoJson/Variant/JsonVariant.hpp>
|
||||||
#include <ArduinoJson/Variant/SlotFunctions.hpp>
|
|
||||||
|
|
||||||
ARDUINOJSON_BEGIN_PUBLIC_NAMESPACE
|
ARDUINOJSON_BEGIN_PUBLIC_NAMESPACE
|
||||||
|
|
||||||
|
@ -111,6 +111,7 @@ class CollectionData {
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
VariantSlot* getPreviousSlot(VariantSlot*) const;
|
VariantSlot* getPreviousSlot(VariantSlot*) const;
|
||||||
|
static void releaseSlot(VariantSlot*, ResourceManager*);
|
||||||
};
|
};
|
||||||
|
|
||||||
inline const VariantData* collectionToVariant(
|
inline const VariantData* collectionToVariant(
|
||||||
|
@ -41,7 +41,7 @@ inline void CollectionData::addSlot(VariantSlot* slot) {
|
|||||||
|
|
||||||
inline void CollectionData::clear(ResourceManager* resources) {
|
inline void CollectionData::clear(ResourceManager* resources) {
|
||||||
for (auto slot = head_; slot; slot = slot->next())
|
for (auto slot = head_; slot; slot = slot->next())
|
||||||
slotRelease(slot, resources);
|
releaseSlot(slot, resources);
|
||||||
head_ = 0;
|
head_ = 0;
|
||||||
tail_ = 0;
|
tail_ = 0;
|
||||||
}
|
}
|
||||||
@ -69,7 +69,7 @@ inline void CollectionData::remove(iterator it, ResourceManager* resources) {
|
|||||||
head_ = next;
|
head_ = next;
|
||||||
if (!next)
|
if (!next)
|
||||||
tail_ = prev;
|
tail_ = prev;
|
||||||
slotRelease(curr, resources);
|
releaseSlot(curr, resources);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline size_t CollectionData::memoryUsage() const {
|
inline size_t CollectionData::memoryUsage() const {
|
||||||
@ -115,4 +115,12 @@ inline void CollectionData::movePointers(ptrdiff_t variantDistance) {
|
|||||||
slot->data()->movePointers(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
|
ARDUINOJSON_END_PRIVATE_NAMESPACE
|
||||||
|
@ -5,7 +5,6 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <ArduinoJson/Object/JsonPair.hpp>
|
#include <ArduinoJson/Object/JsonPair.hpp>
|
||||||
#include <ArduinoJson/Variant/SlotFunctions.hpp>
|
|
||||||
|
|
||||||
ARDUINOJSON_BEGIN_PUBLIC_NAMESPACE
|
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>
|
template <typename T>
|
||||||
T parseNumber(const char* s);
|
T parseNumber(const char* s);
|
||||||
void slotRelease(VariantSlot* slot, ResourceManager* resources);
|
|
||||||
|
|
||||||
class VariantData {
|
class VariantData {
|
||||||
VariantContent content_; // must be first to allow cast from array to variant
|
VariantContent content_; // must be first to allow cast from array to variant
|
||||||
|
Reference in New Issue
Block a user