Skip to content

Commit d05f387

Browse files
committed
fix #317, try parse as BigFloat if overflow
1 parent 05d041d commit d05f387

File tree

2 files changed

+15
-2
lines changed

2 files changed

+15
-2
lines changed

iter_skip_strict.go

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,22 @@
22

33
package jsoniter
44

5-
import "fmt"
5+
import (
6+
"fmt"
7+
"io"
8+
)
69

710
func (iter *Iterator) skipNumber() {
811
if !iter.trySkipNumber() {
912
iter.unreadByte()
10-
iter.ReadFloat32()
13+
if iter.Error != nil && iter.Error != io.EOF {
14+
return
15+
}
16+
iter.ReadFloat64()
17+
if iter.Error != nil && iter.Error != io.EOF {
18+
iter.Error = nil
19+
iter.ReadBigFloat()
20+
}
1121
}
1222
}
1323

value_tests/raw_message_test.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,5 +17,8 @@ func init() {
1717
unmarshalCases = append(unmarshalCases, unmarshalCase{
1818
ptr: (*json.RawMessage)(nil),
1919
input: `[1,2,3]`,
20+
}, unmarshalCase{
21+
ptr: (*json.RawMessage)(nil),
22+
input: `1.122e+250`,
2023
})
2124
}

0 commit comments

Comments
 (0)