0002-Add-a-SimplePtrList-implementation.patch
application/octet-stream
Filename: 0002-Add-a-SimplePtrList-implementation.patch
Type: application/octet-stream
Part: 3
Patch
Format: format-patch
Series: patch 0002
Subject: Add a SimplePtrList implementation
| File | + | − |
|---|---|---|
| src/fe_utils/simple_list.c | 21 | 0 |
| src/include/fe_utils/simple_list.h | 15 | 0 |
From 4b399b2f9133de4cbcc228a2b1fe2e69b4dfe99a Mon Sep 17 00:00:00 2001
From: Julien Rouhaud <julien.rouhaud@free.fr>
Date: Fri, 28 Jun 2019 13:32:25 +0200
Subject: [PATCH 2/4] Add a SimplePtrList implementation
---
src/fe_utils/simple_list.c | 21 +++++++++++++++++++++
src/include/fe_utils/simple_list.h | 15 +++++++++++++++
2 files changed, 36 insertions(+)
diff --git a/src/fe_utils/simple_list.c b/src/fe_utils/simple_list.c
index 8d605140a7..4636d24857 100644
--- a/src/fe_utils/simple_list.c
+++ b/src/fe_utils/simple_list.c
@@ -114,3 +114,24 @@ simple_string_list_not_touched(SimpleStringList *list)
}
return NULL;
}
+
+/*
+ * Append a pointer to the list.
+ */
+void
+simple_ptr_list_append(SimplePtrList *list, void *val)
+{
+ SimplePtrListCell *cell;
+
+ cell = (SimplePtrListCell *) pg_malloc(sizeof(SimplePtrListCell));
+ cell->next = NULL;
+ cell->val = val;
+
+ list->size++;
+
+ if (list->tail)
+ list->tail->next = cell;
+ else
+ list->head = cell;
+ list->tail = cell;
+}
diff --git a/src/include/fe_utils/simple_list.h b/src/include/fe_utils/simple_list.h
index 8a95cbb3a8..88b427d04c 100644
--- a/src/include/fe_utils/simple_list.h
+++ b/src/include/fe_utils/simple_list.h
@@ -43,6 +43,19 @@ typedef struct SimpleStringList
SimpleStringListCell *tail;
} SimpleStringList;
+typedef struct SimplePtrListCell
+{
+ struct SimplePtrListCell *next;
+ void *val;
+} SimplePtrListCell;
+
+typedef struct SimplePtrList
+{
+ int size;
+ SimplePtrListCell *head;
+ SimplePtrListCell *tail;
+} SimplePtrList;
+
extern void simple_oid_list_append(SimpleOidList *list, Oid val);
extern bool simple_oid_list_member(SimpleOidList *list, Oid val);
@@ -52,4 +65,6 @@ extern bool simple_string_list_member(SimpleStringList *list, const char *val);
extern const char *simple_string_list_not_touched(SimpleStringList *list);
+extern void simple_ptr_list_append(SimplePtrList *list, void *val);
+
#endif /* SIMPLE_LIST_H */
--
2.20.1