diff --git a/pack_data.go b/pack_data.go index 91f031e..9e55075 100644 --- a/pack_data.go +++ b/pack_data.go @@ -1,7 +1,6 @@ package tarantool import ( - "bytes" "fmt" "sync" @@ -169,13 +168,17 @@ func (data *packData) packIndex(space interface{}, index interface{}, o []byte) } func (data *packData) MarshalMsg(o []byte) ([]byte, error) { - o, _ = msgp.AppendIntf(o, data.defaultSpace) + var err error + + if o, err = msgp.AppendIntf(o, data.defaultSpace); err != nil { + return o, err + } o = msgp.AppendBytes(o, data.packedDefaultSpace) - o, _ = msgp.AppendIntf(o, data.packedDefaultIndex) - o, _ = msgp.AppendIntf(o, data.packedIterEq) - o, _ = msgp.AppendIntf(o, data.packedDefaultLimit) - o, _ = msgp.AppendIntf(o, data.packedDefaultOffset) - o, _ = msgp.AppendIntf(o, data.packedSingleKey) + o = msgp.AppendBytes(o, data.packedDefaultIndex) + o = msgp.AppendBytes(o, data.packedIterEq) + o = msgp.AppendBytes(o, data.packedDefaultLimit) + o = msgp.AppendBytes(o, data.packedDefaultOffset) + o = msgp.AppendBytes(o, data.packedSingleKey) o = msgp.AppendMapHeader(o, uint32(len(data.spaceMap))) for key, val := range data.spaceMap { @@ -196,7 +199,9 @@ func (data *packData) MarshalMsg(o []byte) ([]byte, error) { o = msgp.AppendMapHeader(o, uint32(len(data.primaryKeyMap))) for key, val := range data.primaryKeyMap { o = msgp.AppendUint64(o, key) - o, _ = msgp.AppendIntf(o, val) + if o, err = msgp.AppendIntf(o, val); err != nil { + return o, err + } } return o, nil @@ -209,18 +214,13 @@ func (pool *packDataPool) Put(data *packData) *packData { return nil } - o, err := data.MarshalMsg(nil) + o, err := msgp.AppendIntf(nil, data) if err != nil { fmt.Println(err) return data } - var buf bytes.Buffer - msgp.CopyToJSON(&buf, bytes.NewReader(o)) - key := buf.String() - - fmt.Println(data) - fmt.Println("json", key) + key := string(o) fmt.Println("key", string(o)) pool.Lock()