summaryrefslogtreecommitdiff
path: root/lib/go
diff options
context:
space:
mode:
authorJens Geyer <jensg@apache.org>2013-12-03 22:57:05 +0100
committerJens Geyer <jensg@apache.org>2013-12-03 22:57:05 +0100
commit7949447efdcb2b355d3140a0d1a765e98a9a9e68 (patch)
treeecee753cfa75ebdc499610606558c699124fd0a8 /lib/go
parentf322d917fb1f1465049ed29853081ef47ca16800 (diff)
downloadthrift-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.go30
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
}