[Python-checkins] r71228 - python/branches/py3k-short-float-repr/Python/dtoa.c
mark.dickinson
python-checkins at python.org
Sun Apr 5 14:32:47 CEST 2009
Author: mark.dickinson
Date: Sun Apr 5 14:32:47 2009
New Revision: 71228
Log:
add error checking to pow5mult
Modified:
python/branches/py3k-short-float-repr/Python/dtoa.c
Modified: python/branches/py3k-short-float-repr/Python/dtoa.c
==============================================================================
--- python/branches/py3k-short-float-repr/Python/dtoa.c (original)
+++ python/branches/py3k-short-float-repr/Python/dtoa.c Sun Apr 5 14:32:47 2009
@@ -701,27 +701,44 @@
int i;
static int p05[3] = { 5, 25, 125 };
- if ((i = k & 3))
+ if ((i = k & 3)) {
b = multadd(b, p05[i-1], 0);
+ if (b == NULL)
+ return NULL;
+ }
if (!(k >>= 2))
return b;
- if (!(p5 = p5s)) {
+ p5 = p5s;
+ if (!p5) {
/* first time */
- p5 = p5s = i2b(625);
+ p5 = i2b(625);
+ if (p5 == NULL) {
+ Bfree(b);
+ return NULL;
+ }
+ p5s = p5;
p5->next = 0;
}
for(;;) {
if (k & 1) {
b1 = mult(b, p5);
Bfree(b);
+ if (b1 == NULL)
+ return NULL;
b = b1;
}
if (!(k >>= 1))
break;
- if (!(p51 = p5->next)) {
- p51 = p5->next = mult(p5,p5);
+ p51 = p5->next;
+ if (!p51) {
+ p51 = mult(p5,p5);
+ if (p51 == NULL) {
+ Bfree(b);
+ return NULL;
+ }
p51->next = 0;
+ p5->next = p51;
}
p5 = p51;
}
More information about the Python-checkins
mailing list