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 (