mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
pkg/tarsum: avoid buf2 allocation in Read
Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)
This commit is contained in:
parent
d1fc32e265
commit
55533693be
1 changed files with 7 additions and 1 deletions
|
@ -23,6 +23,7 @@ type TarSum struct {
|
||||||
gz writeCloseFlusher
|
gz writeCloseFlusher
|
||||||
bufTar *bytes.Buffer
|
bufTar *bytes.Buffer
|
||||||
bufGz *bytes.Buffer
|
bufGz *bytes.Buffer
|
||||||
|
bufData [8192]byte
|
||||||
h hash.Hash
|
h hash.Hash
|
||||||
sums map[string]string
|
sums map[string]string
|
||||||
currentFile string
|
currentFile string
|
||||||
|
@ -92,7 +93,12 @@ func (ts *TarSum) Read(buf []byte) (int, error) {
|
||||||
if ts.finished {
|
if ts.finished {
|
||||||
return ts.bufGz.Read(buf)
|
return ts.bufGz.Read(buf)
|
||||||
}
|
}
|
||||||
buf2 := make([]byte, len(buf), cap(buf))
|
var buf2 []byte
|
||||||
|
if len(buf) > 8192 {
|
||||||
|
buf2 = make([]byte, len(buf), cap(buf))
|
||||||
|
} else {
|
||||||
|
buf2 = ts.bufData[:len(buf)-1]
|
||||||
|
}
|
||||||
|
|
||||||
n, err := ts.tarR.Read(buf2)
|
n, err := ts.tarR.Read(buf2)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
Loading…
Reference in a new issue