فهرست منبع

remove redundant (unmaintained) check in floatscan

also be extra careful to avoid wrapping the circular buffer early
Rich Felker 13 سال پیش
والد
کامیت
02eb568ded
1فایلهای تغییر یافته به همراه3 افزوده شده و 3 حذف شده
  1. 3 3
      src/internal/floatscan.c

+ 3 - 3
src/internal/floatscan.c

@@ -89,7 +89,7 @@ static long double decfloat(FILE *f, int c, int bits, int emin, int sign, int po
 			if (gotrad) break;
 			gotrad = 1;
 			lrp = dc;
-		} else if (k < KMAX-2) {
+		} else if (k < KMAX-3) {
 			dc++;
 			if (c!='0') lnz = dc;
 			if (j) x[k] = x[k]*10 + c-'0';
@@ -101,7 +101,7 @@ static long double decfloat(FILE *f, int c, int bits, int emin, int sign, int po
 			gotdig=1;
 		} else {
 			dc++;
-			if (c!='0') x[KMAX-3] |= 1;
+			if (c!='0') x[KMAX-4] |= 1;
 		}
 	}
 	if (!gotrad) lrp=dc;
@@ -143,7 +143,7 @@ static long double decfloat(FILE *f, int c, int bits, int emin, int sign, int po
 	}
 
 	/* Align incomplete final B1B digit */
-	if (k<KMAX && j) {
+	if (j) {
 		for (; j<9; j++) x[k]*=10;
 		k++;
 		j=0;