From da24b1044f7dc85cda52d6423f5a794a7074fbf8 Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Thu, 6 Jun 2013 21:58:12 -0700 Subject: sort-in-topological-order: use prio-queue Use the prio-queue data structure to implement a priority queue of commits sorted by committer date, when handling --date-order. The structure can also be used as a simple LIFO stack, which is a good match for --topo-order processing. Signed-off-by: Junio C Hamano --- prio-queue.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'prio-queue.c') diff --git a/prio-queue.c b/prio-queue.c index f2a4973a01..c9f8c6d253 100644 --- a/prio-queue.c +++ b/prio-queue.c @@ -2,6 +2,19 @@ #include "commit.h" #include "prio-queue.h" +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++) { + struct commit *swap = queue->array[i]; + queue->array[i] = queue->array[j]; + queue->array[j] = swap; + } +} + void clear_prio_queue(struct prio_queue *queue) { free(queue->array); -- cgit v1.2.3