content: remove unnecessary defer in helpers
Deferring the put back of the buffer is not necessary since it can be done immediately after use, before checking error. This decreases the amount of the time the buffer is out of the pool and not in use. Signed-off-by: Derek McGowan <derek@mcgstyle.net>
This commit is contained in:
parent
0a978d0b82
commit
3a6825e1a0
@ -136,10 +136,7 @@ func Copy(ctx context.Context, cw Writer, r io.Reader, size int64, expected dige
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
buf := bufPool.Get().(*[]byte)
|
if _, err := copyWithBuffer(cw, r); err != nil {
|
||||||
defer bufPool.Put(buf)
|
|
||||||
|
|
||||||
if _, err := io.CopyBuffer(cw, r, *buf); err != nil {
|
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -160,11 +157,7 @@ func CopyReaderAt(cw Writer, ra ReaderAt, n int64) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
buf := bufPool.Get().(*[]byte)
|
_, err = copyWithBuffer(cw, io.NewSectionReader(ra, ws.Offset, n))
|
||||||
defer bufPool.Put(buf)
|
|
||||||
|
|
||||||
_, err = io.CopyBuffer(cw, io.NewSectionReader(ra, ws.Offset, n), *buf)
|
|
||||||
|
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -195,10 +188,7 @@ func seekReader(r io.Reader, offset, size int64) (io.Reader, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// well then, let's just discard up to the offset
|
// well then, let's just discard up to the offset
|
||||||
buf := bufPool.Get().(*[]byte)
|
n, err := copyWithBuffer(ioutil.Discard, io.LimitReader(r, offset))
|
||||||
defer bufPool.Put(buf)
|
|
||||||
|
|
||||||
n, err := io.CopyBuffer(ioutil.Discard, io.LimitReader(r, offset), *buf)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, errors.Wrap(err, "failed to discard to offset")
|
return nil, errors.Wrap(err, "failed to discard to offset")
|
||||||
}
|
}
|
||||||
@ -208,3 +198,10 @@ func seekReader(r io.Reader, offset, size int64) (io.Reader, error) {
|
|||||||
|
|
||||||
return r, nil
|
return r, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func copyWithBuffer(dst io.Writer, src io.Reader) (written int64, err error) {
|
||||||
|
buf := bufPool.Get().(*[]byte)
|
||||||
|
written, err = io.CopyBuffer(dst, src, *buf)
|
||||||
|
bufPool.Put(buf)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user