aboutsummaryrefslogtreecommitdiff
path: root/pack_pack.go
diff options
context:
space:
mode:
authorGravatar Runxi Yu2025-11-16 00:00:00 +0000
committerGravatar Runxi Yu2025-11-16 00:00:00 +0000
commitbd91bf5f3bcffe5d1023ab9a37e4a9425830aba9 (patch)
treee6e9fb33bfa5c455a824f0af065c54529d357c0c /pack_pack.go
parentRevert "hash: Generic hash-algorithm API" (diff)
signature
hash: Make fewer helper functions need explicit hash length fields
Diffstat (limited to 'pack_pack.go')
-rw-r--r--pack_pack.go10
1 files changed, 6 insertions, 4 deletions
diff --git a/pack_pack.go b/pack_pack.go
index 757c5c02..4a75b1ad 100644
--- a/pack_pack.go
+++ b/pack_pack.go
@@ -69,11 +69,11 @@ func (repo *Repository) packReadAt(loc packlocation, want Hash) (Object, error)
return nil, err
}
data := body.Bytes()
- if !verifyTypedObject(ty, data, want, repo.HashSize) {
+ if !repo.verifyTypedObject(ty, data, want) {
body.Release()
return nil, ErrInvalidObject
}
- obj, err := parseObjectBody(ty, want, data, repo.HashSize)
+ obj, err := parseObjectBody(ty, want, data, repo)
body.Release()
return obj, err
}
@@ -269,10 +269,11 @@ func (repo *Repository) packTypeSizeWithin(pf *packFile, ofs uint64, seen map[pa
return ty, declaredSize, nil
case ObjRefDelta:
var base Hash
- _, err := io.ReadFull(r, base[:])
+ _, err := io.ReadFull(r, base.data[:repo.HashSize])
if err != nil {
return ObjInvalid, 0, err
}
+ base.size = repo.HashSize
baseTy, _, err := repo.packTypeSizeByID(base, seen)
if err != nil {
return ObjInvalid, 0, err
@@ -315,10 +316,11 @@ func (repo *Repository) packBodyResolveWithin(pf *packFile, ofs uint64) (ObjType
return ty, body, err
case ObjRefDelta:
var base Hash
- _, err := io.ReadFull(r, base[:])
+ _, err := io.ReadFull(r, base.data[:repo.HashSize])
if err != nil {
return ObjInvalid, borrowedBody{}, err
}
+ base.size = repo.HashSize
delta, err := packSectionInflate(r, 0)
if err != nil {
return ObjInvalid, borrowedBody{}, err