From 09592f09a01333fb58391bec2ae0e4bfb0f1e484 Mon Sep 17 00:00:00 2001 From: Xi Chen Date: Tue, 14 Mar 2017 14:39:25 -0400 Subject: [PATCH] Embed bytes buffer in the buffered encoder --- protocol/msgpack/buffered_encoder.go | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/protocol/msgpack/buffered_encoder.go b/protocol/msgpack/buffered_encoder.go index 3dd660c..414d3e7 100644 --- a/protocol/msgpack/buffered_encoder.go +++ b/protocol/msgpack/buffered_encoder.go @@ -29,7 +29,7 @@ import ( type bufferedEncoder struct { *msgpack.Encoder - buf *bytes.Buffer + buf bytes.Buffer closed bool pool BufferedEncoderPool } @@ -41,16 +41,13 @@ func NewBufferedEncoder() BufferedEncoder { // NewPooledBufferedEncoder creates a new pooled buffered encoder func NewPooledBufferedEncoder(p BufferedEncoderPool) BufferedEncoder { - buf := bytes.NewBuffer(nil) - return &bufferedEncoder{ - Encoder: msgpack.NewEncoder(buf), - buf: buf, - closed: false, - pool: p, - } + var enc bufferedEncoder + enc.Encoder = msgpack.NewEncoder(&enc.buf) + enc.pool = p + return &enc } -func (enc *bufferedEncoder) Buffer() *bytes.Buffer { return enc.buf } +func (enc *bufferedEncoder) Buffer() *bytes.Buffer { return &enc.buf } func (enc *bufferedEncoder) Bytes() []byte { return enc.buf.Bytes() }