ref: e0e493fbf197aabf9272e52ab0e7282e308bcdeb
parent: 69452f58fb0d6c1ed561df1e25efe51e5b3089fd
author: Runxi Yu <runxiyu@umich.edu>
date: Sun Mar 29 10:15:30 EDT 2026
commitquery: Use our proper priority queue thingy
--- a/commitquery/node_paint_down_to_common.go
+++ b/commitquery/node_paint_down_to_common.go
@@ -1,5 +1,7 @@
package commitquery
+import "codeberg.org/lindenii/furgit/internal/priorityqueue"
+
func (query *query) paintDownToCommon(left nodeIndex, rights []nodeIndex, minGeneration uint64) error {query.beginMarkPhase()
@@ -11,18 +13,20 @@
return nil
}
- queue := newPriorityQueue(query)
- queue.PushNode(left)
+ queue := priorityqueue.New(func(left, right nodeIndex) bool {+ return query.compare(left, right) > 0
+ })
+ queue.Push(left)
for _, right := range rights {query.setMarks(right, markRight)
- queue.PushNode(right)
+ queue.Push(right)
}
lastGeneration := generationInfinity
for queue.Len() > 0 {- idx, ok := queue.PopNode()
+ idx, ok := queue.Pop()
if !ok {break
}
@@ -54,7 +58,7 @@
}
query.setMarks(parent, flags)
- queue.PushNode(parent)
+ queue.Push(parent)
}
}
--- a/commitquery/priority_queue.go
+++ /dev/null
@@ -1,32 +1,0 @@
-package commitquery
-
-import internalheap "codeberg.org/lindenii/furgit/internal/heap"
-
-// priorityQueue orders internal nodes using one query context's comparator.
-type priorityQueue struct {- items *internalheap.Heap[nodeIndex]
-}
-
-// newPriorityQueue builds one empty priority queue over one query context.
-func newPriorityQueue(query *query) *priorityQueue {- return &priorityQueue{- items: internalheap.New(func(left, right nodeIndex) bool {- return query.compare(left, right) > 0
- }),
- }
-}
-
-// Len reports the number of queued items.
-func (queue *priorityQueue) Len() int {- return queue.items.Len()
-}
-
-// PushNode inserts one internal node.
-func (queue *priorityQueue) PushNode(idx nodeIndex) {- queue.items.Push(idx)
-}
-
-// PopNode removes the highest-priority internal node.
-func (queue *priorityQueue) PopNode() (nodeIndex, bool) {- return queue.items.Pop()
-}
--
⑨