Просмотр исходного кода

Convert "collection function" to static member functions

Benoit Blanchon 2 лет назад
Родитель
Сommit
af8bdfbc8f

+ 2 - 3
src/ArduinoJson/Array/JsonArray.hpp

@@ -6,7 +6,6 @@
 
 #include <ArduinoJson/Array/ElementProxy.hpp>
 #include <ArduinoJson/Array/JsonArrayConst.hpp>
-#include <ArduinoJson/Collection/CollectionFunctions.hpp>
 
 ARDUINOJSON_BEGIN_PUBLIC_NAMESPACE
 
@@ -93,7 +92,7 @@ class JsonArray : public detail::VariantOperators<JsonArray> {
   // ⚠️ Doesn't release the memory associated with the removed element.
   // https://arduinojson.org/v6/api/jsonarray/remove/
   FORCE_INLINE void remove(iterator it) const {
-    collectionRemove(data_, it.slot_, resources_);
+    detail::ArrayData::removeSlot(data_, it.slot_, resources_);
   }
 
   // Removes the element at the specified index.
@@ -107,7 +106,7 @@ class JsonArray : public detail::VariantOperators<JsonArray> {
   // ⚠️ Doesn't release the memory associated with the removed elements.
   // https://arduinojson.org/v6/api/jsonarray/clear/
   void clear() const {
-    collectionClear(data_, resources_);
+    detail::ArrayData::clear(data_, resources_);
   }
 
   // Gets or sets the element at the specified index.

+ 0 - 1
src/ArduinoJson/Array/JsonArrayConst.hpp

@@ -5,7 +5,6 @@
 #pragma once
 
 #include <ArduinoJson/Array/JsonArrayIterator.hpp>
-#include <ArduinoJson/Collection/CollectionFunctions.hpp>
 #include <ArduinoJson/Variant/VariantAttorney.hpp>
 #include <ArduinoJson/Variant/VariantData.hpp>
 

+ 13 - 0
src/ArduinoJson/Collection/CollectionData.hpp

@@ -31,8 +31,21 @@ class CollectionData {
 
   void clear(ResourceManager* resources);
 
+  static void clear(CollectionData* collection, ResourceManager* resources) {
+    if (!collection)
+      return;
+    collection->clear(resources);
+  }
+
   void removeSlot(VariantSlot* slot, ResourceManager* resources);
 
+  static void removeSlot(CollectionData* collection, VariantSlot* slot,
+                         ResourceManager* resources) {
+    if (!collection)
+      return;
+    collection->removeSlot(slot, resources);
+  }
+
   VariantSlot* head() const {
     return head_;
   }

+ 0 - 24
src/ArduinoJson/Collection/CollectionFunctions.hpp

@@ -1,24 +0,0 @@
-// ArduinoJson - https://arduinojson.org
-// Copyright © 2014-2023, Benoit BLANCHON
-// MIT License
-
-#pragma once
-
-#include <ArduinoJson/Collection/CollectionData.hpp>
-
-ARDUINOJSON_BEGIN_PRIVATE_NAMESPACE
-
-inline void collectionClear(CollectionData* c, ResourceManager* resources) {
-  if (!c)
-    return;
-  c->clear(resources);
-}
-
-inline void collectionRemove(CollectionData* data, VariantSlot* slot,
-                             ResourceManager* resources) {
-  if (!data)
-    return;
-  data->removeSlot(slot, resources);
-}
-
-ARDUINOJSON_END_PRIVATE_NAMESPACE

+ 2 - 2
src/ArduinoJson/Object/JsonObject.hpp

@@ -89,7 +89,7 @@ class JsonObject : public detail::VariantOperators<JsonObject> {
   // ⚠️ Doesn't release the memory associated with the removed members.
   // https://arduinojson.org/v6/api/jsonobject/clear/
   void clear() const {
-    collectionClear(data_, resources_);
+    detail::ObjectData::clear(data_, resources_);
   }
 
   // Copies an object.
@@ -127,7 +127,7 @@ class JsonObject : public detail::VariantOperators<JsonObject> {
   // ⚠️ Doesn't release the memory associated with the removed member.
   // https://arduinojson.org/v6/api/jsonobject/remove/
   FORCE_INLINE void remove(iterator it) const {
-    collectionRemove(data_, it.slot_, resources_);
+    detail::ObjectData::removeSlot(data_, it.slot_, resources_);
   }
 
   // Removes the member with the specified key.