]> Cypherpunks repositories - gostls13.git/commitdiff
io: calculate buffer size only when needed
authorAuthor Name <aaronstein12@gmail.com>
Sat, 5 May 2018 17:47:38 +0000 (10:47 -0700)
committerBrad Fitzpatrick <bradfitz@golang.org>
Sun, 6 May 2018 15:52:31 +0000 (15:52 +0000)
Change-Id: I930be9027fb972198b3d44816a5e4f53ff7eb5ea
Reviewed-on: https://go-review.googlesource.com/111642
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>

src/io/io.go

index 3999a385c68233f51a6ffb46a12005b390768589..72b75813a5e348c542acf5c628ae438789ef8dfd 100644 (file)
@@ -387,15 +387,15 @@ func copyBuffer(dst Writer, src Reader, buf []byte) (written int64, err error) {
        if rt, ok := dst.(ReaderFrom); ok {
                return rt.ReadFrom(src)
        }
-       size := 32 * 1024
-       if l, ok := src.(*LimitedReader); ok && int64(size) > l.N {
-               if l.N < 1 {
-                       size = 1
-               } else {
-                       size = int(l.N)
-               }
-       }
        if buf == nil {
+               size := 32 * 1024
+               if l, ok := src.(*LimitedReader); ok && int64(size) > l.N {
+                       if l.N < 1 {
+                               size = 1
+                       } else {
+                               size = int(l.N)
+                       }
+               }
                buf = make([]byte, size)
        }
        for {