diff options
Diffstat (limited to 'src/fe_utils/simple_list.c')
-rw-r--r-- | src/fe_utils/simple_list.c | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/src/fe_utils/simple_list.c b/src/fe_utils/simple_list.c index 483d5455594..b0686e57c4a 100644 --- a/src/fe_utils/simple_list.c +++ b/src/fe_utils/simple_list.c @@ -192,3 +192,44 @@ simple_ptr_list_destroy(SimplePtrList *list) cell = next; } } + +/* + * Add to an oid_string list + */ +void +simple_oid_string_list_append(SimpleOidStringList *list, Oid oid, const char *str) +{ + SimpleOidStringListCell *cell; + + cell = (SimpleOidStringListCell *) + pg_malloc(offsetof(SimpleOidStringListCell, str) + strlen(str) + 1); + + cell->next = NULL; + cell->oid = oid; + strcpy(cell->str, str); + + if (list->tail) + list->tail->next = cell; + else + list->head = cell; + list->tail = cell; +} + +/* + * Destroy an oid_string list + */ +void +simple_oid_string_list_destroy(SimpleOidStringList *list) +{ + SimpleOidStringListCell *cell; + + cell = list->head; + while (cell != NULL) + { + SimpleOidStringListCell *next; + + next = cell->next; + pg_free(cell); + cell = next; + } +} |