From 4e4b630fe88b0f5c1f6f934a760632b9efbeaaf0 Mon Sep 17 00:00:00 2001 From: Runxi Yu Date: Fri, 20 Feb 2026 12:49:27 +0800 Subject: Revert "packed: Cleanup" This reverts commit 45da63f4d0fd94e5a8b11fc6aa8b626338dcabf8. --- packed_write_test.go | 34 ++++++++++++++++++---------------- 1 file changed, 18 insertions(+), 16 deletions(-) (limited to 'packed_write_test.go') diff --git a/packed_write_test.go b/packed_write_test.go index ccd81844..63fd9266 100644 --- a/packed_write_test.go +++ b/packed_write_test.go @@ -3,7 +3,6 @@ package furgit import ( "bytes" "crypto/rand" - "encoding/binary" "fmt" "os" "os/exec" @@ -366,7 +365,7 @@ func checkPackStream(path string, algo hashAlgorithm, objectCount int) error { if len(data) < 12 { return ErrInvalidObject } - if binary.BigEndian.Uint32(data[0:4]) != packMagic || binary.BigEndian.Uint32(data[4:8]) != packVersion2 { + if readBE32(data[0:4]) != packMagic || readBE32(data[4:8]) != packVersion2 { return ErrInvalidObject } pos := 12 @@ -434,14 +433,9 @@ func checkPackStream(path string, algo hashAlgorithm, objectCount int) error { if baseBody == nil { return fmt.Errorf("obj %d missing base body", i) } - pos := 0 - baseSize, err := packVarintRead(payload, &pos) + baseSize, resultSize, err := readDeltaSizes(payload) if err != nil { - return fmt.Errorf("obj %d delta base size: %v", i, err) - } - resultSize, err := packVarintRead(payload, &pos) - if err != nil { - return fmt.Errorf("obj %d delta result size: %v", i, err) + return fmt.Errorf("obj %d delta sizes: %v", i, err) } if baseSize != len(baseBody) { return fmt.Errorf("obj %d delta base size mismatch: got %d want %d", i, baseSize, len(baseBody)) @@ -460,14 +454,9 @@ func checkPackStream(path string, algo hashAlgorithm, objectCount int) error { if baseBody == nil { return fmt.Errorf("obj %d missing ref base body", i) } - pos := 0 - baseSize, err := packVarintRead(payload, &pos) + baseSize, resultSize, err := readDeltaSizes(payload) if err != nil { - return fmt.Errorf("obj %d ref delta base size: %v", i, err) - } - resultSize, err := packVarintRead(payload, &pos) - if err != nil { - return fmt.Errorf("obj %d ref delta result size: %v", i, err) + return fmt.Errorf("obj %d ref delta sizes: %v", i, err) } if baseSize != len(baseBody) { return fmt.Errorf("obj %d ref delta base size mismatch: got %d want %d", i, baseSize, len(baseBody)) @@ -504,6 +493,19 @@ func checkPackStream(path string, algo hashAlgorithm, objectCount int) error { return nil } +func readDeltaSizes(delta []byte) (int, int, error) { + pos := 0 + baseSize, err := packVarintRead(delta, &pos) + if err != nil { + return 0, 0, err + } + resultSize, err := packVarintRead(delta, &pos) + if err != nil { + return 0, 0, err + } + return baseSize, resultSize, nil +} + func removeLooseObject(repoPath, oid string) error { if len(oid) < 2 { return ErrInvalidObject -- cgit v1.3.1-10-gc9f91