aboutsummaryrefslogtreecommitdiff
path: root/internal/commitquery/marks.go
diff options
context:
space:
mode:
authorGravatar Runxi Yu2026-03-11 20:41:32 +0800
committerGravatar Runxi Yu2026-03-11 20:41:32 +0800
commit040b572d95e4ca27e1ada6113c405b8a1eb4a669 (patch)
tree68d826f4d91144105802c9d1c67175ba9b314e29 /internal/commitquery/marks.go
parentresearch: Maybe drop mmap in packfile_bloom (diff)
signatureNo signature
commitquery: Merge from ancestor and mergebases
Diffstat (limited to 'internal/commitquery/marks.go')
-rw-r--r--internal/commitquery/marks.go67
1 files changed, 0 insertions, 67 deletions
diff --git a/internal/commitquery/marks.go b/internal/commitquery/marks.go
deleted file mode 100644
index f88fdf25..00000000
--- a/internal/commitquery/marks.go
+++ /dev/null
@@ -1,67 +0,0 @@
-package commitquery
-
-// Marks returns the mark bits of one internal node.
-func (ctx *Context) Marks(idx NodeIndex) markBits {
- return ctx.nodes[idx].marks
-}
-
-// HasAnyMarks reports whether one internal node has any requested bit.
-func (ctx *Context) HasAnyMarks(idx NodeIndex, bits markBits) bool {
- return ctx.nodes[idx].marks&bits != 0
-}
-
-// HasAllMarks reports whether one internal node already has all requested bits.
-func (ctx *Context) HasAllMarks(idx NodeIndex, bits markBits) bool {
- return ctx.nodes[idx].marks&bits == bits
-}
-
-// SetMarks ORs one set of mark bits into one internal node.
-func (ctx *Context) SetMarks(idx NodeIndex, bits markBits) {
- newBits := bits &^ ctx.nodes[idx].marks
- if newBits == 0 {
- return
- }
-
- ctx.trackTouched(idx)
- ctx.nodes[idx].marks |= bits
-}
-
-// ClearMarks removes one set of mark bits from one internal node.
-func (ctx *Context) ClearMarks(idx NodeIndex, bits markBits) {
- if ctx.nodes[idx].marks&bits == 0 {
- return
- }
-
- ctx.trackTouched(idx)
- ctx.nodes[idx].marks &^= bits
-}
-
-// BeginMarkPhase starts one tracked mark-mutation phase.
-func (ctx *Context) BeginMarkPhase() {
- ctx.markPhase++
- if ctx.markPhase == 0 {
- ctx.markPhase++
- for i := range ctx.nodes {
- ctx.nodes[i].touchedPhase = 0
- }
- }
-
- ctx.touched = ctx.touched[:0]
-}
-
-// ClearTouchedMarks clears the provided bits from all nodes touched in the
-// current mark phase.
-func (ctx *Context) ClearTouchedMarks(bits markBits) {
- for _, idx := range ctx.touched {
- ctx.nodes[idx].marks &^= bits
- }
-}
-
-func (ctx *Context) trackTouched(idx NodeIndex) {
- if ctx.nodes[idx].touchedPhase == ctx.markPhase {
- return
- }
-
- ctx.nodes[idx].touchedPhase = ctx.markPhase
- ctx.touched = append(ctx.touched, idx)
-}