diff options
author | Jens Geyer <jensg@apache.org> | 2013-12-03 22:57:05 +0100 |
---|---|---|
committer | Jens Geyer <jensg@apache.org> | 2013-12-03 22:57:05 +0100 |
commit | 7949447efdcb2b355d3140a0d1a765e98a9a9e68 (patch) | |
tree | ecee753cfa75ebdc499610606558c699124fd0a8 /lib/go | |
parent | f322d917fb1f1465049ed29853081ef47ca16800 (diff) | |
download | thrift-7949447efdcb2b355d3140a0d1a765e98a9a9e68.tar.gz |
THRIFT-2279 TSerializer only returns the first 1024 bytes serialized
Patch: Matt Jones
Diffstat (limited to 'lib/go')
-rw-r--r-- | lib/go/thrift/serializer.go | 30 |
1 files changed, 6 insertions, 24 deletions
diff --git a/lib/go/thrift/serializer.go b/lib/go/thrift/serializer.go index 04c253804..771222999 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 } |