]> Cypherpunks repositories - gostls13.git/commitdiff
strings, bytes: ReadAt should not mutate receiver
authorRui Ueyama <ruiu@google.com>
Wed, 19 Mar 2014 19:13:47 +0000 (12:13 -0700)
committerBrad Fitzpatrick <bradfitz@golang.org>
Wed, 19 Mar 2014 19:13:47 +0000 (12:13 -0700)
CL 77580046 caused a data race issue with tests that assumes ReadAt
does not mutate receiver. This patch partially revert CL 77580046
to fix it.

LGTM=bradfitz
R=golang-codereviews, bradfitz
CC=golang-codereviews
https://golang.org/cl/77900043

src/pkg/bytes/reader.go
src/pkg/bytes/reader_test.go
src/pkg/strings/reader.go
src/pkg/strings/strings_test.go

index 8041a3b324944f788f74974370d8aa67319aa0b2..1151ffcd69c4d5767c519e81dffde562b718970e 100644 (file)
@@ -43,7 +43,6 @@ func (r *Reader) Read(b []byte) (n int, err error) {
 }
 
 func (r *Reader) ReadAt(b []byte, off int64) (n int, err error) {
-       r.prevRune = -1
        if off < 0 {
                return 0, errors.New("bytes: invalid offset")
        }
index 01cfa6deb5bfb73ab767ca29c7d2617fff97a0ac..fc502d7fe5ab55a2b806098235105dc34fda82c4 100644 (file)
@@ -138,7 +138,6 @@ var UnreadRuneErrorTests = []struct {
        f    func(*Reader)
 }{
        {"Read", func(r *Reader) { r.Read([]byte{}) }},
-       {"ReadAt", func(r *Reader) { r.ReadAt([]byte{}, 0) }},
        {"ReadByte", func(r *Reader) { r.ReadByte() }},
        {"UnreadRune", func(r *Reader) { r.UnreadRune() }},
        {"Seek", func(r *Reader) { r.Seek(0, 1) }},
index df4d807120d953bf3f434ca44e41214d8d46a1af..75bf07b377409ebf1d038d9e8ba19bc4511c732a 100644 (file)
@@ -42,7 +42,6 @@ func (r *Reader) Read(b []byte) (n int, err error) {
 }
 
 func (r *Reader) ReadAt(b []byte, off int64) (n int, err error) {
-       r.prevRune = -1
        if off < 0 {
                return 0, errors.New("strings: invalid offset")
        }
index 5c389657755b92d66d49d21965cc08f39cdb5c2c..8347818d593df2b4bc6d5449fa852b043179c762 100644 (file)
@@ -863,7 +863,6 @@ var UnreadRuneErrorTests = []struct {
        f    func(*Reader)
 }{
        {"Read", func(r *Reader) { r.Read([]byte{}) }},
-       {"ReadAt", func(r *Reader) { r.ReadAt([]byte{}, 0) }},
        {"ReadByte", func(r *Reader) { r.ReadByte() }},
        {"UnreadRune", func(r *Reader) { r.UnreadRune() }},
        {"Seek", func(r *Reader) { r.Seek(0, 1) }},