Merge pull request #108 from divebomb/master
Imp: use gost bytes pool
diff --git a/binary.go b/binary.go
index 4c4d0dc..3352129 100644
--- a/binary.go
+++ b/binary.go
@@ -19,6 +19,7 @@
)
import (
+ gxbytes "github.com/dubbogo/gost/bytes"
perrors "github.com/pkg/errors"
)
@@ -129,8 +130,12 @@
return []byte(""), nil
}
- data := make([]byte, 0)
- buf := make([]byte, 65536)
+ data := make([]byte, 0, 128)
+ bufp := gxbytes.GetBytes(65546)
+ buf := *bufp
+
+ defer gxbytes.PutBytes(bufp)
+
for {
length, err = d.getBinaryLength(tag)
if err != nil {
diff --git a/string.go b/string.go
index 0196d78..60dfb6d 100644
--- a/string.go
+++ b/string.go
@@ -15,7 +15,6 @@
package hessian
import (
- "bufio"
"bytes"
"io"
"reflect"
@@ -134,32 +133,6 @@
}
}
-func getRune(reader io.Reader) (rune, int, error) {
- var (
- runeNil rune
- typ reflect.Type
- )
-
- typ = reflect.TypeOf(reader.(interface{}))
-
- switch {
- case typ == reflect.TypeOf(&bufio.Reader{}):
- byteReader := reader.(interface{}).(*bufio.Reader)
- return byteReader.ReadRune()
-
- case typ == reflect.TypeOf(&bytes.Buffer{}):
- byteReader := reader.(interface{}).(*bytes.Buffer)
- return byteReader.ReadRune()
-
- case typ == reflect.TypeOf(&bytes.Reader{}):
- byteReader := reader.(interface{}).(*bytes.Reader)
- return byteReader.ReadRune()
-
- default:
- return runeNil, 0, nil
- }
-}
-
// hessian-lite/src/main/java/com/alibaba/com/caucho/hessian/io/Hessian2Input.java : readString
func (d *Decoder) decString(flag int32) (string, error) {
var (