1
0
mirror of https://github.com/json-iterator/go.git synced 2025-03-20 20:54:55 +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: