Skip to content

Commit 7827f2d

Browse files
author
Tao Wen
committed
skip if value type incompatible
1 parent 405b446 commit 7827f2d

File tree

8 files changed

+806
-89
lines changed

8 files changed

+806
-89
lines changed

iter_array.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,7 @@ func (iter *Iterator) ReadArrayHead() bool {
99
return false
1010
}
1111
iter.ReportError("ReadArrayHead", "expect [, but found "+string([]byte{c}))
12-
iter.unreadByte()
13-
iter.Skip()
12+
iter.skip(c)
1413
return false
1514
}
1615
c = iter.nextToken()

iter_bool.go

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,23 @@ package jsoniter
44
func (iter *Iterator) ReadBool(out *bool) error {
55
c := iter.nextToken()
66
if c == 't' {
7-
err := iter.skipThreeBytes('r', 'u', 'e')
7+
err := iter.skipThreeBytes('r', 'u', 'e') // true
88
if err == nil {
99
*out = true
1010
}
1111
return err
1212
}
1313
if c == 'f' {
14-
err := iter.skipFourBytes('a', 'l', 's', 'e')
14+
err := iter.skipFourBytes('a', 'l', 's', 'e') // false
1515
if err == nil {
1616
*out = false
1717
}
1818
return err
1919
}
20+
if c == 'n' {
21+
return iter.skipThreeBytes('u', 'l', 'l') // null
22+
}
2023
err := iter.ReportError("ReadBool", "expect t or f, but found "+string([]byte{c}))
21-
iter.unreadByte()
22-
iter.Skip()
24+
iter.skip(c)
2325
return err
2426
}

0 commit comments

Comments
 (0)