diff options
| author | 2025-11-22 08:00:00 +0800 | |
|---|---|---|
| committer | 2025-11-22 08:00:00 +0800 | |
| commit | a504524ca695f04692f5a2cf49952ed039a6a348 (patch) | |
| tree | 4d0ab8463f1bd9be22aab2af7b7d38f88ef24c77 /loose.go | |
| parent | bufpool: Improve perf by using buckets of different size classes (diff) | |
| signature | No signature | |
bufpool: Return *Buffer
Diffstat (limited to 'loose.go')
| -rw-r--r-- | loose.go | 18 |
1 files changed, 9 insertions, 9 deletions
@@ -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) |
