aboutsummaryrefslogtreecommitdiff
path: root/src/bufio/bufio.go
diff options
context:
space:
mode:
authorShulhan <m.shulhan@gmail.com>2023-09-16 23:17:48 +0700
committerShulhan <m.shulhan@gmail.com>2026-04-14 21:51:40 +0700
commit5410be8b93277d2b1d0f701bfa64a4930b31615e (patch)
tree492499e42b20c51a7971335dd2f2255789c88274 /src/bufio/bufio.go
parent46703a0c6d11d17c75f6f77b2c7e8941b8cd505f (diff)
downloadgo-5410be8b93277d2b1d0f701bfa64a4930b31615e.tar.xz
bufio: realign struct Reader
This reduce the Reader allocation size from 72 to 40 bytes and Writer allocation size from 64 to 40 bytes.
Diffstat (limited to 'src/bufio/bufio.go')
-rw-r--r--src/bufio/bufio.go9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/bufio/bufio.go b/src/bufio/bufio.go
index f9b762be8d..79e7f3cf57 100644
--- a/src/bufio/bufio.go
+++ b/src/bufio/bufio.go
@@ -33,10 +33,10 @@ var (
// alternatively the zero value of a Reader may be used after calling [Reader.Reset]
// on it.
type Reader struct {
- buf []byte
rd io.Reader // reader provided by the client
- r, w int // buf read and write positions
err error
+ buf []byte
+ r, w int // buf read and write positions
lastByte int // last byte read for UnreadByte; -1 means invalid
lastRuneSize int // size of last rune read for UnreadRune; -1 means invalid
}
@@ -577,10 +577,10 @@ func (b *Reader) writeBuf(w io.Writer) (int64, error) {
// [Writer.Flush] method to guarantee all data has been forwarded to
// the underlying [io.Writer].
type Writer struct {
+ wr io.Writer
err error
buf []byte
n int
- wr io.Writer
}
// NewWriterSize returns a new [Writer] whose buffer has at least the specified
@@ -794,7 +794,8 @@ func (b *Writer) ReadFrom(r io.Reader) (n int64, err error) {
}
}
if readerFromOK && b.Buffered() == 0 {
- nn, err := readerFrom.ReadFrom(r)
+ var nn int64
+ nn, err = readerFrom.ReadFrom(r)
b.err = err
n += nn
return n, err