diff options
| author | Shulhan <m.shulhan@gmail.com> | 2023-09-16 23:17:48 +0700 |
|---|---|---|
| committer | Shulhan <m.shulhan@gmail.com> | 2026-04-14 21:51:40 +0700 |
| commit | 5410be8b93277d2b1d0f701bfa64a4930b31615e (patch) | |
| tree | 492499e42b20c51a7971335dd2f2255789c88274 /src/bufio/bufio.go | |
| parent | 46703a0c6d11d17c75f6f77b2c7e8941b8cd505f (diff) | |
| download | go-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.go | 9 |
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 |
