Jelajahi Sumber

Merge pull request #513 from AllenX2018/fix-issue-510

fix issue 510
Allen 5 tahun lalu
induk
melakukan
e6b9536d36
2 mengubah file dengan 4 tambahan dan 0 penghapusan
  1. 3 0
      iter_float.go
  2. 1 0
      iter_int.go

+ 3 - 0
iter_float.go

@@ -288,6 +288,9 @@ non_decimal_loop:
 				return iter.readFloat64SlowPath()
 			}
 			value = (value << 3) + (value << 1) + uint64(ind)
+			if value > maxFloat64 {
+				return iter.readFloat64SlowPath()
+			}
 		}
 	}
 	return iter.readFloat64SlowPath()

+ 1 - 0
iter_int.go

@@ -9,6 +9,7 @@ var intDigits []int8
 
 const uint32SafeToMultiply10 = uint32(0xffffffff)/10 - 1
 const uint64SafeToMultiple10 = uint64(0xffffffffffffffff)/10 - 1
+const maxFloat64 = 1<<53 - 1
 
 func init() {
 	intDigits = make([]int8, 256)