Browse Source

codec: use a cached 1-byte array for simpleIoEncWriterWriter.WriteByte

Fixes #143
Ugorji Nwoke 9 years ago
parent
commit
03b46f3d7a
1 changed files with 4 additions and 1 deletions
  1. 4 1
      codec/encode.go

+ 4 - 1
codec/encode.go

@@ -141,13 +141,16 @@ type simpleIoEncWriterWriter struct {
 	w  io.Writer
 	bw io.ByteWriter
 	sw ioEncStringWriter
+	bs [1]byte
 }
 
 func (o *simpleIoEncWriterWriter) WriteByte(c byte) (err error) {
 	if o.bw != nil {
 		return o.bw.WriteByte(c)
 	}
-	_, err = o.w.Write([]byte{c})
+	// _, err = o.w.Write([]byte{c})
+	o.bs[0] = c
+	_, err = o.w.Write(o.bs[:])
 	return
 }