aboutsummaryrefslogtreecommitdiff
path: root/src/core/list.c
diff options
context:
space:
mode:
authorGarrett D'Amore <garrett@damore.org>2017-07-04 13:04:38 -0700
committerGarrett D'Amore <garrett@damore.org>2017-07-04 13:04:38 -0700
commit58c5fbb731f50a952864bc500a8efd3b7077ee65 (patch)
treebff20e9758e04c024ef26288dff0f4edb89cf033 /src/core/list.c
parent5b45db0aeb1026fcf7bbdec0e6451d1cfaac58f1 (diff)
downloadnng-58c5fbb731f50a952864bc500a8efd3b7077ee65.tar.gz
nng-58c5fbb731f50a952864bc500a8efd3b7077ee65.tar.bz2
nng-58c5fbb731f50a952864bc500a8efd3b7077ee65.zip
Improved routines for list management.
Diffstat (limited to 'src/core/list.c')
-rw-r--r--src/core/list.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/core/list.c b/src/core/list.c
index 1d00171b..10ec4ef8 100644
--- a/src/core/list.c
+++ b/src/core/list.c
@@ -158,3 +158,29 @@ nni_list_active(nni_list *list, void *item)
return (node->ln_next == NULL ? 0 : 1);
}
+
+
+int
+nni_list_empty(nni_list *list)
+{
+ return (list->ll_head.ln_next == &list->ll_head);
+}
+
+
+int
+nni_list_node_active(nni_list_node *node)
+{
+ return (node->ln_next == NULL ? 0 : 1);
+}
+
+
+void
+nni_list_node_remove(nni_list_node *node)
+{
+ if (node->ln_next != NULL) {
+ node->ln_prev->ln_next = node->ln_next;
+ node->ln_next->ln_prev = node->ln_prev;
+ node->ln_next = NULL;
+ node->ln_prev = NULL;
+ }
+}