소스 검색

Fix partial parsing of "infinity" in `parse_f64_prefix`

It was previously reporting an invalid number of characters parsed for
any string other than "inf", "+inf", or "-inf".
Feoramund 1 년 전
부모
커밋
d33668fa91
1개의 변경된 파일3개의 추가작업 그리고 6개의 파일을 삭제
  1. 3 6
      core/strconv/strconv.odin

+ 3 - 6
core/strconv/strconv.odin

@@ -878,13 +878,10 @@ parse_f64_prefix :: proc(str: string) -> (value: f64, nr: int, ok: bool) {
 				s = s[1:]
 				fallthrough
 			case 'i', 'I':
-				n = common_prefix_len_ignore_case(s, "infinity")
-				if 3 < n && n < 8 { // "inf" or "infinity"
-					n = 3
-				}
-				if n == 3 || n == 8 {
+				m := common_prefix_len_ignore_case(s, "infinity")
+				if m == 3 || m == 8 { // "inf" or "infinity"
 					f = 0h7ff00000_00000000 if sign == 1 else 0hfff00000_00000000
-					n = nsign + 3
+					n = nsign + m
 					ok = true
 					return
 				}