1
0
mirror of https://github.com/json-iterator/go.git synced 2025-08-13 22:12:45 +02:00

optimize read string

This commit is contained in:
Tao Wen
2016-12-06 10:53:50 +08:00
parent 38120d5ff2
commit 48544a1e79

View File

@@ -253,7 +253,7 @@ func (iter *Iterator) ReadInt64() (ret int64) {
}
func (iter *Iterator) ReadString() (ret string) {
str := make([]byte, 0, 10)
str := make([]byte, 0, 8)
c := iter.readByte()
if iter.Error != nil {
return
@@ -338,7 +338,7 @@ func (iter *Iterator) ReadString() (ret string) {
return
}
case '"':
return string(str)
return *(*string)(unsafe.Pointer(&str))
default:
str = append(str, c)
}
@@ -484,11 +484,7 @@ func (iter *Iterator) ReadObject() (ret string) {
return "" // end of object
case '"':
iter.unreadByte()
field := iter.readObjectField()
if iter.Error != nil {
return
}
return field
return iter.readObjectField()
default:
iter.ReportError("ReadObject", `expect " after {`)
return
@@ -496,11 +492,7 @@ func (iter *Iterator) ReadObject() (ret string) {
}
case ',':
iter.skipWhitespaces()
field := iter.readObjectField()
if iter.Error != nil {
return
}
return field
return iter.readObjectField()
case '}':
return "" // end of object
default: