checkout: introduce checkout.overlayMode config
[gitweb.git] / prio-queue.c
index 17252d231b31f2b8d82d7160d7b95709e14779ff..d3f488cb05f29bc90e4e03810d9bf4b972d0834f 100644 (file)
@@ -20,17 +20,16 @@ void prio_queue_reverse(struct prio_queue *queue)
        int i, j;
 
        if (queue->compare != NULL)
-               die("BUG: prio_queue_reverse() on non-LIFO queue");
-       for (i = 0; i <= (j = (queue->nr - 1) - i); i++)
+               BUG("prio_queue_reverse() on non-LIFO queue");
+       for (i = 0; i < (j = (queue->nr - 1) - i); i++)
                swap(queue, i, j);
 }
 
 void clear_prio_queue(struct prio_queue *queue)
 {
-       free(queue->array);
+       FREE_AND_NULL(queue->array);
        queue->nr = 0;
        queue->alloc = 0;
-       queue->array = NULL;
        queue->insertion_ctr = 0;
 }
 
@@ -86,3 +85,12 @@ void *prio_queue_get(struct prio_queue *queue)
        }
        return result;
 }
+
+void *prio_queue_peek(struct prio_queue *queue)
+{
+       if (!queue->nr)
+               return NULL;
+       if (!queue->compare)
+               return queue->array[queue->nr - 1].data;
+       return queue->array[0].data;
+}