diff options
| author | 2026-03-10 13:30:48 +0800 | |
|---|---|---|
| committer | 2026-03-10 13:30:48 +0800 | |
| commit | 73e602a5c2c766caba59948e91c11122653705ec (patch) | |
| tree | 57951a4275dd90c2b3953e5b4bf3c9a7bd09b84a /format/commitgraph/read/layer_lookup.go | |
| parent | *: Move sideband64k and pktline to protocol/ (diff) | |
| signature | No signature | |
commitgraph: Move out of format/
Diffstat (limited to 'format/commitgraph/read/layer_lookup.go')
| -rw-r--r-- | format/commitgraph/read/layer_lookup.go | 53 |
1 files changed, 0 insertions, 53 deletions
diff --git a/format/commitgraph/read/layer_lookup.go b/format/commitgraph/read/layer_lookup.go deleted file mode 100644 index 9a03505a..00000000 --- a/format/commitgraph/read/layer_lookup.go +++ /dev/null @@ -1,53 +0,0 @@ -package read - -import ( - "bytes" - "encoding/binary" - - "codeberg.org/lindenii/furgit/internal/intconv" - "codeberg.org/lindenii/furgit/objectid" -) - -func layerLookup(layer *layer, oid objectid.ObjectID) (uint32, bool) { - hashSize := oid.Size() - first := int(oid.RawBytes()[0]) - - var lo uint32 - if first > 0 { - lo = binary.BigEndian.Uint32(layer.chunkOIDFanout[(first-1)*4 : first*4]) - } - - hi := binary.BigEndian.Uint32(layer.chunkOIDFanout[first*4 : (first+1)*4]) - if hi == 0 || lo >= hi { - return 0, false - } - - target := oid.RawBytes() - left := int(lo) - - right := int(hi) - 1 - for left <= right { - mid := left + (right-left)/2 - start := mid * hashSize - end := start + hashSize - - current := layer.chunkOIDLookup[start:end] - - cmp := bytes.Compare(current, target) - switch { - case cmp == 0: - pos, err := intconv.IntToUint32(mid) - if err != nil { - return 0, false - } - - return pos, true - case cmp < 0: - left = mid + 1 - default: - right = mid - 1 - } - } - - return 0, false -} |
