diff options
| author | Anuradha Karuppiah <anuradhak@cumulusnetworks.com> | 2019-03-19 11:39:51 -0700 |
|---|---|---|
| committer | Anuradha Karuppiah <anuradhak@cumulusnetworks.com> | 2019-04-20 08:33:20 -0700 |
| commit | 315999e9b424b5824c28796ba62e43df1bb4cf2c (patch) | |
| tree | 3b5886e3e505c5a024bfe544dbbeede0fccea0c4 /lib | |
| parent | c6b6b53b294ae37e35f802769a6da21a88f63e18 (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.c | 4 | ||||
| -rw-r--r-- | lib/linklist.h | 2 |
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. |
