From: Jens Geyer Date: Tue, 3 Dec 2013 21:57:05 +0000 (+0100) Subject: THRIFT-2279 TSerializer only returns the first 1024 bytes serialized X-Git-Url: https://source.supwisdom.com/gerrit/gitweb?a=commitdiff_plain;h=7949447efdcb2b355d3140a0d1a765e98a9a9e68;p=common%2Fthrift.git THRIFT-2279 TSerializer only returns the first 1024 bytes serialized Patch: Matt Jones --- diff --git a/lib/go/thrift/serializer.go b/lib/go/thrift/serializer.go index 04c25380..77122299 100644 --- a/lib/go/thrift/serializer.go +++ b/lib/go/thrift/serializer.go @@ -20,7 +20,7 @@ package thrift type TSerializer struct { - Transport TTransport + Transport *TMemoryBuffer Protocol TProtocol } @@ -30,9 +30,7 @@ type TStruct interface { } func NewTSerializer() *TSerializer { - var transport TTransport - transport = NewTMemoryBufferLen(1024) - + transport := NewTMemoryBufferLen(1024) protocol := NewTBinaryProtocolFactoryDefault().GetProtocol(transport) return &TSerializer{ @@ -41,8 +39,7 @@ func NewTSerializer() *TSerializer { } func (t *TSerializer) WriteString(msg TStruct) (s string, err error) { - s = "" - err = nil + t.Transport.Reset() if err = msg.Write(t.Protocol); err != nil { return @@ -55,19 +52,11 @@ func (t *TSerializer) WriteString(msg TStruct) (s string, err error) { return } - var buf []byte - var place int - buf = make([]byte, 1024) - if place, err = t.Transport.Read(buf); err != nil { - return - } - - s = string(buf[:place]) - return + return t.Transport.String(), nil } func (t *TSerializer) Write(msg TStruct) (b []byte, err error) { - err = nil + t.Transport.Reset() if err = msg.Write(t.Protocol); err != nil { return @@ -81,13 +70,6 @@ func (t *TSerializer) Write(msg TStruct) (b []byte, err error) { return } - var buf []byte - var place int - buf = make([]byte, 1024) - if place, err = t.Transport.Read(buf); err != nil { - return - } - - b = buf[:place] + b = append(b, t.Transport.Bytes()...) return }