summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Lamparter <equinox@opensourcerouting.org>2016-07-28 17:23:46 +0200
committerDonald Sharp <sharpd@cumulusnetwroks.com>2016-07-28 13:27:47 +0200
commita8fd82028158f8e811e214fec0185cf6cdfdb9cb (patch)
tree75a3b1ace1cf15db15f286492f22b752ce4a40a4
parent*: snmp: add a load of "static" specifiers (diff)
downloadfrr-a8fd82028158f8e811e214fec0185cf6cdfdb9cb.tar.xz
frr-a8fd82028158f8e811e214fec0185cf6cdfdb9cb.zip
lib: linklist: clean up insert-before/after dups
- list_add_node_next was in fact unused - list_add_node_prev performs a subset of listnode_add_before and its only use in isisd replaced with that. Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
-rw-r--r--isisd/isis_spf.c4
-rw-r--r--lib/linklist.c49
-rw-r--r--lib/linklist.h4
3 files changed, 5 insertions, 52 deletions
diff --git a/isisd/isis_spf.c b/isisd/isis_spf.c
index 32026f9b1..fd5af4a2b 100644
--- a/isisd/isis_spf.c
+++ b/isisd/isis_spf.c
@@ -545,13 +545,13 @@ isis_spf_add2tent (struct isis_spftree *spftree, enum vertextype vtype,
v = listgetdata (node);
if (v->d_N > vertex->d_N)
{
- list_add_node_prev (spftree->tents, node, vertex);
+ listnode_add_before (spftree->tents, node, vertex);
break;
}
else if (v->d_N == vertex->d_N && v->type > vertex->type)
{
/* Tie break, add according to type */
- list_add_node_prev (spftree->tents, node, vertex);
+ listnode_add_before (spftree->tents, node, vertex);
break;
}
}
diff --git a/lib/linklist.c b/lib/linklist.c
index 8b6a85282..d27a2da84 100644
--- a/lib/linklist.c
+++ b/lib/linklist.c
@@ -122,7 +122,7 @@ listnode_add_sort (struct list *list, void *val)
list->count++;
}
-void
+struct listnode *
listnode_add_after (struct list *list, struct listnode *pp, void *val)
{
struct listnode *nn;
@@ -157,6 +157,7 @@ listnode_add_after (struct list *list, struct listnode *pp, void *val)
pp->next = nn;
}
list->count++;
+ return nn;
}
struct listnode *
@@ -306,52 +307,6 @@ list_delete_node (struct list *list, struct listnode *node)
/* ospf_spf.c */
void
-list_add_node_prev (struct list *list, struct listnode *current, void *val)
-{
- struct listnode *node;
-
- assert (val != NULL);
-
- node = listnode_new ();
- node->next = current;
- node->data = val;
-
- if (current->prev == NULL)
- list->head = node;
- else
- current->prev->next = node;
-
- node->prev = current->prev;
- current->prev = node;
-
- list->count++;
-}
-
-/* ospf_spf.c */
-void
-list_add_node_next (struct list *list, struct listnode *current, void *val)
-{
- struct listnode *node;
-
- assert (val != NULL);
-
- node = listnode_new ();
- node->prev = current;
- node->data = val;
-
- if (current->next == NULL)
- list->tail = node;
- else
- current->next->prev = node;
-
- node->next = current->next;
- current->next = node;
-
- list->count++;
-}
-
-/* ospf_spf.c */
-void
list_add_list (struct list *l, struct list *m)
{
struct listnode *n;
diff --git a/lib/linklist.h b/lib/linklist.h
index 96aaf4319..e99e50f4f 100644
--- a/lib/linklist.h
+++ b/lib/linklist.h
@@ -67,7 +67,7 @@ extern void list_free (struct list *);
extern void listnode_add (struct list *, void *);
extern void listnode_add_sort (struct list *, void *);
-extern void listnode_add_after (struct list *, struct listnode *, void *);
+extern struct listnode *listnode_add_after (struct list *, struct listnode *, void *);
extern struct listnode *listnode_add_before (struct list *, struct listnode *, void *);
extern void listnode_move_to_tail (struct list *, struct listnode *);
extern void listnode_delete (struct list *, void *);
@@ -81,8 +81,6 @@ extern void list_delete_all_node (struct list *);
extern void list_delete_node (struct list *, struct listnode *);
/* For ospf_spf.c */
-extern void list_add_node_prev (struct list *, struct listnode *, void *);
-extern void list_add_node_next (struct list *, struct listnode *, void *);
extern void list_add_list (struct list *, struct list *);
/* List iteration macro.