diff --git a/jsoniter.go b/jsoniter.go index 9ebed72..a47e551 100644 --- a/jsoniter.go +++ b/jsoniter.go @@ -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: