diff options
| author | 2026-03-05 21:25:39 +0800 | |
|---|---|---|
| committer | 2026-03-05 21:25:39 +0800 | |
| commit | 9ba4a988bcc7879b62e0c0fff910113df481c599 (patch) | |
| tree | 0b5d4318af242b96102a857a8593e59b1b9f2c3a /format | |
| parent | *: Fix wsl_v5 again (diff) | |
| signature | No signature | |
*: Fix various lints
Diffstat (limited to 'format')
| -rw-r--r-- | format/pack/ingest/stream.go | 112 | ||||
| -rw-r--r-- | format/pack/ingest/thin_fix.go | 2 |
2 files changed, 57 insertions, 57 deletions
diff --git a/format/pack/ingest/stream.go b/format/pack/ingest/stream.go index 4c6b59ab..0a496167 100644 --- a/format/pack/ingest/stream.go +++ b/format/pack/ingest/stream.go @@ -50,6 +50,62 @@ func newStreamScanner(src io.Reader, dstFile *os.File, hash hash.Hash, hashSize } } +// Read implements io.Reader. +func (scanner *streamScanner) Read(dst []byte) (int, error) { + if len(dst) == 0 { + return 0, nil + } + + if scanner.n-scanner.off == 0 { + err := scanner.fill(1) + if err != nil { + if errors.Is(err, io.EOF) { + return 0, io.EOF + } + + return 0, err + } + } + + unread := scanner.n - scanner.off + if unread == 0 { + return 0, io.EOF + } + + n := len(dst) + if n > unread { + n = unread + } + + copy(dst, scanner.buf[scanner.off:scanner.off+n]) + + err := scanner.use(n) + if err != nil { + return 0, err + } + + return n, nil +} + +// ReadByte implements io.ByteReader without allocation. +func (scanner *streamScanner) ReadByte() (byte, error) { + if scanner.n-scanner.off == 0 { + err := scanner.fill(1) + if err != nil { + return 0, err + } + } + + b := scanner.buf[scanner.off] + + err := scanner.use(1) + if err != nil { + return 0, err + } + + return b, nil +} + // fill ensures at least min unread bytes are available in receiver's buffer. func (scanner *streamScanner) fill(min int) error { if min <= 0 { @@ -115,62 +171,6 @@ func (scanner *streamScanner) use(n int) error { return nil } -// Read implements io.Reader. -func (scanner *streamScanner) Read(dst []byte) (int, error) { - if len(dst) == 0 { - return 0, nil - } - - if scanner.n-scanner.off == 0 { - err := scanner.fill(1) - if err != nil { - if errors.Is(err, io.EOF) { - return 0, io.EOF - } - - return 0, err - } - } - - unread := scanner.n - scanner.off - if unread == 0 { - return 0, io.EOF - } - - n := len(dst) - if n > unread { - n = unread - } - - copy(dst, scanner.buf[scanner.off:scanner.off+n]) - - err := scanner.use(n) - if err != nil { - return 0, err - } - - return n, nil -} - -// ReadByte implements io.ByteReader without allocation. -func (scanner *streamScanner) ReadByte() (byte, error) { - if scanner.n-scanner.off == 0 { - err := scanner.fill(1) - if err != nil { - return 0, err - } - } - - b := scanner.buf[scanner.off] - - err := scanner.use(1) - if err != nil { - return 0, err - } - - return b, nil -} - // readFull reads exactly len(dst) bytes through receiver. func (scanner *streamScanner) readFull(dst []byte) error { _, err := io.ReadFull(scanner, dst) diff --git a/format/pack/ingest/thin_fix.go b/format/pack/ingest/thin_fix.go index 5883ac23..767816ed 100644 --- a/format/pack/ingest/thin_fix.go +++ b/format/pack/ingest/thin_fix.go @@ -275,7 +275,7 @@ func encodePackEntryHeader(ty objecttype.Type, size int64) []byte { panic(err) } - c := byte((uint8(ty) << 4) | byte(s&0x0f)) + c := (uint8(ty) << 4) | byte(s&0x0f) s >>= 4 for s != 0 { |
