aboutsummaryrefslogtreecommitdiff
path: root/loose.go
diff options
context:
space:
mode:
authorGravatar Runxi Yu2025-11-22 08:00:00 +0800
committerGravatar Runxi Yu2025-11-22 08:00:00 +0800
commita504524ca695f04692f5a2cf49952ed039a6a348 (patch)
tree4d0ab8463f1bd9be22aab2af7b7d38f88ef24c77 /loose.go
parentbufpool: Improve perf by using buckets of different size classes (diff)
signatureNo signature
bufpool: Return *Buffer
Diffstat (limited to 'loose.go')
-rw-r--r--loose.go18
1 files changed, 9 insertions, 9 deletions
diff --git a/loose.go b/loose.go
index 86f67890..adfa8f05 100644
--- a/loose.go
+++ b/loose.go
@@ -34,36 +34,36 @@ func (repo *Repository) looseRead(id Hash) (StoredObject, error) {
return obj, err
}
-func (repo *Repository) looseReadTyped(id Hash) (ObjectType, bufpool.Buffer, error) {
+func (repo *Repository) looseReadTyped(id Hash) (ObjectType, *bufpool.Buffer, error) {
path, err := repo.loosePath(id)
if err != nil {
- return ObjectTypeInvalid, bufpool.Buffer{}, err
+ return ObjectTypeInvalid, nil, err
}
path = repo.repoPath(path)
f, err := os.Open(path)
if err != nil {
if os.IsNotExist(err) {
- return ObjectTypeInvalid, bufpool.Buffer{}, ErrNotFound
+ return ObjectTypeInvalid, nil, ErrNotFound
}
- return ObjectTypeInvalid, bufpool.Buffer{}, err
+ return ObjectTypeInvalid, nil, err
}
defer func() { _ = f.Close() }()
compressed, err := io.ReadAll(f)
if err != nil {
- return ObjectTypeInvalid, bufpool.Buffer{}, err
+ return ObjectTypeInvalid, nil, err
}
raw, err := zlibx.Decompress(compressed)
if err != nil {
- return ObjectTypeInvalid, bufpool.Buffer{}, err
+ return ObjectTypeInvalid, nil, err
}
rawBytes := raw.Bytes()
nul := bytes.IndexByte(rawBytes, 0)
if nul < 0 {
raw.Release()
- return ObjectTypeInvalid, bufpool.Buffer{}, ErrInvalidObject
+ return ObjectTypeInvalid, nil, ErrInvalidObject
}
header := rawBytes[:nul]
@@ -72,11 +72,11 @@ func (repo *Repository) looseReadTyped(id Hash) (ObjectType, bufpool.Buffer, err
ty, declaredSize, err := parseLooseHeader(header)
if err != nil {
raw.Release()
- return ObjectTypeInvalid, bufpool.Buffer{}, err
+ return ObjectTypeInvalid, nil, err
}
if declaredSize != int64(len(body)) {
raw.Release()
- return ObjectTypeInvalid, bufpool.Buffer{}, ErrInvalidObject
+ return ObjectTypeInvalid, nil, ErrInvalidObject
}
copy(rawBytes, body)