[LTP] [PATCH 5/9] metadata: data_storage: Add two array functions
Cyril Hrubis
chrubis@suse.cz
Wed Dec 18 20:00:25 CET 2024
- data_node_array_last() returns last element in an array or NULL if empty
- data_node_array_last_rem() removes and frees last element from an array
Signed-off-by: Cyril Hrubis <chrubis@suse.cz>
---
metadata/data_storage.h | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)
diff --git a/metadata/data_storage.h b/metadata/data_storage.h
index e72be6187..6427ea1ed 100644
--- a/metadata/data_storage.h
+++ b/metadata/data_storage.h
@@ -251,6 +251,34 @@ static inline unsigned int data_node_array_len(struct data_node *self)
return self->array.array_used;
}
+
+static inline struct data_node *data_node_array_last(struct data_node *self)
+{
+ if (self->type != DATA_ARRAY)
+ return NULL;
+
+ unsigned int array_used = self->array.array_used;
+ if (!array_used)
+ return NULL;
+
+ return self->array.array[array_used-1];
+}
+
+static inline void data_node_array_last_rem(struct data_node *self)
+{
+ if (self->type != DATA_ARRAY)
+ return;
+
+ unsigned int array_used = self->array.array_used;
+ if (!array_used)
+ return;
+
+ data_node_free(self->array.array[array_used-1]);
+
+ self->array.array[array_used-1] = NULL;
+ self->array.array_used--;
+}
+
static inline void data_print_padd(unsigned int i)
{
while (i-- > 0)
--
2.45.2
More information about the ltp
mailing list