diff options
| author | 2026-03-04 08:26:56 +0800 | |
|---|---|---|
| committer | 2026-03-04 08:59:53 +0800 | |
| commit | ab7501be34032fb9e5c48726a68ae90a917af9eb (patch) | |
| tree | 20d005647569befea8133e953c3270e8fd2a2a5b /objectstore/loose/parse.go | |
| parent | *: gofumpt (diff) | |
| signature | No signature | |
*: Lint
Diffstat (limited to 'objectstore/loose/parse.go')
| -rw-r--r-- | objectstore/loose/parse.go | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/objectstore/loose/parse.go b/objectstore/loose/parse.go index 54bb2375..e88d7c6c 100644 --- a/objectstore/loose/parse.go +++ b/objectstore/loose/parse.go @@ -17,7 +17,9 @@ func decodeAll(file *os.File) ([]byte, error) { if err != nil { return nil, err } + defer func() { _ = zr.Close() }() + return io.ReadAll(zr) } @@ -27,10 +29,12 @@ func parseRaw(raw []byte) (objecttype.Type, []byte, error) { if !ok { return objecttype.TypeInvalid, nil, errors.New("objectstore/loose: malformed object header") } + content := raw[headerLen:] if int64(len(content)) != size { return objecttype.TypeInvalid, nil, errors.New("objectstore/loose: object header size/content mismatch") } + return ty, content, nil } @@ -41,9 +45,11 @@ func readHeader(br *bufio.Reader) ([]byte, objecttype.Type, int64, error) { if err != nil { return nil, objecttype.TypeInvalid, 0, err } + ty, size, _, ok := objectheader.Parse(header) if !ok { return nil, objecttype.TypeInvalid, 0, errors.New("objectstore/loose: malformed object header") } + return header, ty, size, nil } |
