diff options
Diffstat (limited to 'priority_queue.c')
| -rw-r--r-- | priority_queue.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/priority_queue.c b/priority_queue.c index 6460a9e..d899103 100644 --- a/priority_queue.c +++ b/priority_queue.c @@ -28,6 +28,8 @@ int ppq_insert(PositionPQ **ppq, Position pos, size_t priority) { if (start->priority > priority) { n->next = start; start = n; + *ppq = start; + ppq_remove(&(n->next), pos); return PPQ_INSERT_SUCCESS; } @@ -48,6 +50,8 @@ int ppq_insert(PositionPQ **ppq, Position pos, size_t priority) { n->next = temp->next; temp->next = n; + ppq_remove(&(n->next), pos); + return PPQ_INSERT_SUCCESS; } @@ -71,7 +75,7 @@ void ppq_remove(PositionPQ **ppq, Position pos) { PositionPQ *temp = *ppq; if (temp == NULL) { - error("Tried to remove a pos from a NULL PositionPQ\n"); + return; } PositionPQ *prev = NULL; |
