summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorAnuradha Karuppiah <anuradhak@cumulusnetworks.com>2019-03-19 11:39:51 -0700
committerAnuradha Karuppiah <anuradhak@cumulusnetworks.com>2019-04-20 08:33:20 -0700
commit315999e9b424b5824c28796ba62e43df1bb4cf2c (patch)
tree3b5886e3e505c5a024bfe544dbbeede0fccea0c4 /lib
parentc6b6b53b294ae37e35f802769a6da21a88f63e18 (diff)
lib: return listnode on add for subsequent efficent del
Having to lookup the DLL node to delete it defeats one purpose of using DLLs. Signed-off-by: Anuradha Karuppiah <anuradhak@cumulusnetworks.com>
Diffstat (limited to 'lib')
-rw-r--r--lib/linklist.c4
-rw-r--r--lib/linklist.h2
2 files changed, 4 insertions, 2 deletions
diff --git a/lib/linklist.c b/lib/linklist.c
index f0d0c29245..d3ecc00306 100644
--- a/lib/linklist.c
+++ b/lib/linklist.c
@@ -50,7 +50,7 @@ static void listnode_free(struct listnode *node)
XFREE(MTYPE_LINK_NODE, node);
}
-void listnode_add(struct list *list, void *val)
+struct listnode *listnode_add(struct list *list, void *val)
{
struct listnode *node;
@@ -68,6 +68,8 @@ void listnode_add(struct list *list, void *val)
list->tail = node;
list->count++;
+
+ return node;
}
void listnode_add_head(struct list *list, void *val)
diff --git a/lib/linklist.h b/lib/linklist.h
index e75d863431..dd90608bcb 100644
--- a/lib/linklist.h
+++ b/lib/linklist.h
@@ -84,7 +84,7 @@ extern struct list *list_new(void);
* data
* element to add
*/
-extern void listnode_add(struct list *list, void *data);
+extern struct listnode *listnode_add(struct list *list, void *data);
/*
* Add a new element to the beginning of a list.