diff options
Diffstat (limited to 'plist.c')
-rw-r--r-- | plist.c | 6 |
1 files changed, 5 insertions, 1 deletions
@@ -31,10 +31,12 @@ #include "plist.h" void -plist_add(struct plist *plist, struct plist_node *pnode) +plist_add(struct plist *plist, struct plist_node *pnode, unsigned int priority) { struct plist_node *next; + pnode->priority = priority; + if (plist_empty(plist)) { list_insert_head(&plist->list, &pnode->node); list_insert_head(&plist->prio_list, &pnode->prio_node); @@ -50,6 +52,8 @@ plist_add(struct plist *plist, struct plist_node *pnode) if (list_end(&plist->prio_list, &next->prio_node) || (pnode->priority != next->priority)) { list_insert_before(&next->prio_node, &pnode->prio_node); + } else { + list_init(&pnode->prio_node); } list_insert_before(&next->node, &pnode->node); |