Flushing after every token negates the point of buffering. A different approach is required.
««« original CL description
encoding/xml: flush buffer after encoding token
R=rsc, bradfitz, adg
CC=golang-dev
https://golang.org/cl/
13004046
»»»
R=golang-dev, adg, rsc
CC=golang-dev
https://golang.org/cl/
13515043
p.WriteString("<!--")
p.Write(t)
p.WriteString("-->")
+ return p.cachedWriteError()
case ProcInst:
if t.Target == "xml" || !isNameString(t.Target) {
return fmt.Errorf("xml: EncodeToken of ProcInst with invalid Target")
p.Write(t)
p.WriteString(">")
}
- return p.Flush()
+ return p.cachedWriteError()
}
type printer struct {
}
}
-func TestEncodeTokenFlush(t *testing.T) {
- var buf bytes.Buffer
- enc := NewEncoder(&buf)
- enc.EncodeToken(StartElement{Name: Name{Local: "some-tag"}})
- if g, w := buf.String(), "<some-tag>"; g != w {
- t.Errorf("Encoder wrote %q, want %q", g, w)
- }
-}
-
func BenchmarkMarshal(b *testing.B) {
for i := 0; i < b.N; i++ {
Marshal(atomValue)