v14-0009-Add-simple_ptr_list_destroy-and-simple_ptr_list_.patch
application/x-patch
Filename: v14-0009-Add-simple_ptr_list_destroy-and-simple_ptr_list_.patch
Type: application/x-patch
Part: 3
Patch
Format: format-patch
Series: patch v14-0009
Subject: Add simple_ptr_list_destroy() and simple_ptr_list_destroy_deep() API.
| File | + | − |
|---|---|---|
| src/fe_utils/simple_list.c | 19 | 0 |
| src/include/fe_utils/simple_list.h | 1 | 0 |
From 8b60229b2ae59e7c01a2fdb83614b1aa362d52ab Mon Sep 17 00:00:00 2001
From: Amul Sul <amul.sul@enterprisedb.com>
Date: Thu, 8 Aug 2024 16:01:33 +0530
Subject: [PATCH v14 09/12] Add simple_ptr_list_destroy() and
simple_ptr_list_destroy_deep() API.
We didn't have any helper function to destroy SimplePtrList, likely
because it wasn't needed before, but it's required in a later patch in
this set. I've added two functions for this purpose, inspired by
list_free() and list_free_deep().
---
src/fe_utils/simple_list.c | 19 +++++++++++++++++++
src/include/fe_utils/simple_list.h | 1 +
2 files changed, 20 insertions(+)
diff --git a/src/fe_utils/simple_list.c b/src/fe_utils/simple_list.c
index 2d88eb54067..c07e6bd9180 100644
--- a/src/fe_utils/simple_list.c
+++ b/src/fe_utils/simple_list.c
@@ -173,3 +173,22 @@ simple_ptr_list_append(SimplePtrList *list, void *ptr)
list->head = cell;
list->tail = cell;
}
+
+/*
+ * Destroy only pointer list and not the pointed-to element
+ */
+void
+simple_ptr_list_destroy(SimplePtrList *list)
+{
+ SimplePtrListCell *cell;
+
+ cell = list->head;
+ while (cell != NULL)
+ {
+ SimplePtrListCell *next;
+
+ next = cell->next;
+ pg_free(cell);
+ cell = next;
+ }
+}
diff --git a/src/include/fe_utils/simple_list.h b/src/include/fe_utils/simple_list.h
index d42ecded8ed..c83ab6f77e4 100644
--- a/src/include/fe_utils/simple_list.h
+++ b/src/include/fe_utils/simple_list.h
@@ -66,5 +66,6 @@ extern void simple_string_list_destroy(SimpleStringList *list);
extern const char *simple_string_list_not_touched(SimpleStringList *list);
extern void simple_ptr_list_append(SimplePtrList *list, void *ptr);
+extern void simple_ptr_list_destroy(SimplePtrList *list);
#endif /* SIMPLE_LIST_H */
--
2.18.0