blob: 97f8757a16376a3efe14ca4118569a49e8779cb4 (
about) (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
package ingest
import (
"fmt"
"hash/crc32"
)
// use consumes n unread bytes and updates accounting/checksum state.
func (scanner *streamScanner) use(n int) error {
if n < 0 || n > scanner.n-scanner.off {
return fmt.Errorf("packfile/ingest: invalid consume length %d", n)
}
if n == 0 {
return nil
}
chunk := scanner.buf[scanner.off : scanner.off+n]
if scanner.hashEnabled {
_, err := scanner.hash.Write(chunk)
if err != nil {
return err
}
}
if scanner.inEntryCRC {
scanner.entryCRC = crc32.Update(scanner.entryCRC, crc32.IEEETable, chunk)
}
scanner.off += n
scanner.consumed += uint64(n)
return nil
}
|