|
|
|
@ -1252,7 +1252,7 @@ zend_strtod |
|
|
|
_double rv, rv0; |
|
|
|
Long L; |
|
|
|
ULong y, z; |
|
|
|
Bigint *bb, *bb1, *bd, *bd0, *bs, *delta; |
|
|
|
Bigint *bb, *bb1, *bd, *bd0, *bs, *delta, *tmp; |
|
|
|
double result; |
|
|
|
|
|
|
|
CONST char decimal_point = '.'; |
|
|
|
@ -1778,6 +1778,22 @@ zend_strtod |
|
|
|
if (se) |
|
|
|
*se = (char *)s; |
|
|
|
result = sign ? -value(rv) : value(rv); |
|
|
|
|
|
|
|
for (i = 0; i <= Kmax; i++) { |
|
|
|
Bigint **listp = &freelist[i]; |
|
|
|
while ((tmp = *listp) != NULL) { |
|
|
|
*listp = tmp->next; |
|
|
|
free(tmp); |
|
|
|
} |
|
|
|
freelist[i] = NULL; |
|
|
|
} |
|
|
|
|
|
|
|
while (p5s) { |
|
|
|
tmp = p5s; |
|
|
|
p5s = p5s->next; |
|
|
|
free(tmp); |
|
|
|
} |
|
|
|
|
|
|
|
return result; |
|
|
|
} |
|
|
|
|
|
|
|
|