Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / base / third_party / dmg_fp / dtoa.cc
index 4eb9f0e..7219624 100644 (file)
@@ -548,8 +548,10 @@ Balloc
        ACQUIRE_DTOA_LOCK(0);
        /* The k > Kmax case does not need ACQUIRE_DTOA_LOCK(0), */
        /* but this case seems very unlikely. */
-       if (k <= Kmax && (rv = freelist[k]))
+       if (k <= Kmax && freelist[k]) {
+               rv = freelist[k];
                freelist[k] = rv->next;
+               }
        else {
                x = 1 << k;
 #ifdef Omit_Private_Memory
@@ -834,7 +836,8 @@ mult
        xc0 = c->x;
 #ifdef ULLong
        for(; xb < xbe; xc0++) {
-               if ((y = *xb++)) {
+               y = *xb++;
+               if (y) {
                        x = xa;
                        xc = xc0;
                        carry = 0;
@@ -916,16 +919,19 @@ pow5mult
        int i;
        static int p05[3] = { 5, 25, 125 };
 
-       if ((i = k & 3))
+       i = k & 3;
+       if (i)
                b = multadd(b, p05[i-1], 0);
 
        if (!(k >>= 2))
                return b;
-       if (!(p5 = p5s)) {
+       p5 = p5s;
+       if (!p5) {
                /* first time */
 #ifdef MULTIPLE_THREADS
                ACQUIRE_DTOA_LOCK(1);
-               if (!(p5 = p5s)) {
+               p5 = p5s;
+               if (!p5) {
                        p5 = p5s = i2b(625);
                        p5->next = 0;
                        }
@@ -943,10 +949,12 @@ pow5mult
                        }
                if (!(k >>= 1))
                        break;
-               if (!(p51 = p5->next)) {
+               p51 = p5->next;
+               if (!p51) {
 #ifdef MULTIPLE_THREADS
                        ACQUIRE_DTOA_LOCK(1);
-                       if (!(p51 = p5->next)) {
+                       p51 = p5->next;
+                       if (!p51) {
                                p51 = p5->next = mult(p5,p5);
                                p51->next = 0;
                                }
@@ -997,7 +1005,8 @@ lshift
                        z = *x++ >> k1;
                        }
                        while(x < xe);
-               if ((*x1 = z))
+               *x1 = z;
+               if (*x1)
                        ++n1;
                }
 #else
@@ -1299,21 +1308,25 @@ d2b
        z |= Exp_msk11;
 #endif
 #else
-       if ((de = (int)(d0 >> Exp_shift)))
+       de = (int)(d0 >> Exp_shift);
+       if (de)
                z |= Exp_msk1;
 #endif
 #ifdef Pack_32
-       if ((y = d1)) {
-               if ((k = lo0bits(&y))) {
+       y = d1;
+       if (y) {
+               k = lo0bits(&y);
+               if (k) {
                        x[0] = y | z << (32 - k);
                        z >>= k;
                        }
                else
                        x[0] = y;
+               x[1] = z;
+               b->wds = x[1] ? 2 : 1;
 #ifndef Sudden_Underflow
-               i =
+               i = b->wds;
 #endif
-                   b->wds = (x[1] = z) ? 2 : 1;
                }
        else {
                k = lo0bits(&z);
@@ -1536,7 +1549,7 @@ match
        int c, d;
        CONST char *s = *sp;
 
-       while((d = *t++)) {
+       for(d = *t++; d; d = *t++) {
                if ((c = *++s) >= 'A' && c <= 'Z')
                        c += 'a' - 'A';
                if (c != d)
@@ -1566,12 +1579,13 @@ hexnan
        udx0 = 1;
        s = *sp;
        /* allow optional initial 0x or 0X */
-       while((c = *(CONST unsigned char*)(s+1)) && c <= ' ')
+       for(c = *(CONST unsigned char*)(s+1); c && c <= ' '; c = *(CONST unsigned char*)(s+1))
                ++s;
        if (s[1] == '0' && (s[2] == 'x' || s[2] == 'X'))
                s += 2;
-       while((c = *(CONST unsigned char*)++s)) {
-               if ((c1 = hexdig[c]))
+       for(c = *(CONST unsigned char*)++s; c; c = *(CONST unsigned char*)++s) {
+               c1 = hexdig[c];
+               if (c1)
                        c  = c1 & 0xf;
                else if (c <= ' ') {
                        if (udx0 && havedig) {
@@ -1594,7 +1608,8 @@ hexnan
                                        *sp = s + 1;
                                        break;
                                        }
-                               } while((c = *++s));
+                               c = *++s;
+                               } while(c);
                        break;
                        }
 #endif
@@ -2328,7 +2343,8 @@ bigcomp
        /* Now b/d = exactly half-way between the two floating-point values */
        /* on either side of the input string.  Compute first digit of b/d. */
 
-       if (!(dig = quorem(b,d))) {
+       dig = quorem(b,d);
+       if (!dig) {
                b = multadd(b, 10, 0);  /* very unlikely */
                dig = quorem(b,d);
                }
@@ -2336,7 +2352,8 @@ bigcomp
        /* Compare b/d with s0 */
 
        for(i = 0; i < nd0; ) {
-               if ((dd = s0[i++] - '0' - dig))
+               dd = s0[i++] - '0' - dig;
+               if (dd)
                        goto ret;
                if (!b->x[0] && b->wds == 1) {
                        if (i < nd)
@@ -2347,7 +2364,8 @@ bigcomp
                dig = quorem(b,d);
                }
        for(j = bc->dp1; i++ < nd;) {
-               if ((dd = s0[j++] - '0' - dig))
+               dd = s0[j++] - '0' - dig;
+               if (dd)
                        goto ret;
                if (!b->x[0] && b->wds == 1) {
                        if (i < nd)
@@ -2747,7 +2765,8 @@ strtod
        /* Get starting approximation = rv * 10**e1 */
 
        if (e1 > 0) {
-               if ((i = e1 & 15))
+               i = e1 & 15;
+               if (i)
                        dval(&rv) *= tens[i];
                if (e1 &= ~15) {
                        if (e1 > DBL_MAX_10_EXP) {
@@ -2805,7 +2824,8 @@ strtod
                }
        else if (e1 < 0) {
                e1 = -e1;
-               if ((i = e1 & 15))
+               i = e1 & 15;
+               if (i)
                        dval(&rv) /= tens[i];
                if (e1 >>= 4) {
                        if (e1 >= 1 << n_bigtens)
@@ -3456,7 +3476,7 @@ nrv_alloc(CONST char *s, char **rve, int n)
        char *rv, *t;
 
        t = rv = rv_alloc(n);
-       while((*t = *s++)) t++;
+       for(*t = *s++; *t; *t = *s++) t++;
        if (rve)
                *rve = t;
        return rv;
@@ -3645,10 +3665,9 @@ dtoa
 #endif
 
        b = d2b(&u, &be, &bbits);
-#ifdef Sudden_Underflow
        i = (int)(word0(&u) >> Exp_shift1 & (Exp_mask>>Exp_shift1));
-#else
-       if ((i = (int)(word0(&u) >> Exp_shift1 & (Exp_mask>>Exp_shift1)))) {
+#ifndef Sudden_Underflow
+       if (i) {
 #endif
                dval(&d2) = dval(&u);
                word0(&d2) &= Frac_mask1;
@@ -3803,13 +3822,16 @@ dtoa
                                        }
                        dval(&u) /= ds;
                        }
-               else if ((j1 = -k)) {
-                       dval(&u) *= tens[j1 & 0xf];
-                       for(j = j1 >> 4; j; j >>= 1, i++)
-                               if (j & 1) {
-                                       ieps++;
-                                       dval(&u) *= bigtens[i];
-                                       }
+               else {
+                       j1 = -k;
+                       if (j1) {
+                               dval(&u) *= tens[j1 & 0xf];
+                               for(j = j1 >> 4; j; j >>= 1, i++)
+                                       if (j & 1) {
+                                               ieps++;
+                                               dval(&u) *= bigtens[i];
+                                               }
+                               }
                        }
                if (k_check && dval(&u) < 1. && ilim > 0) {
                        if (ilim1 <= 0)
@@ -3964,7 +3986,8 @@ dtoa
                                Bfree(b);
                                b = b1;
                                }
-                       if ((j = b5 - m5))
+                       j = b5 - m5;
+                       if (j)
                                b = pow5mult(b, j);
                        }
                else
@@ -4002,7 +4025,8 @@ dtoa
         * can do shifts and ors to compute the numerator for q.
         */
 #ifdef Pack_32
-       if ((i = ((s5 ? 32 - hi0bits(S->x[S->wds-1]) : 1) + s2) & 0x1f))
+       i = ((s5 ? 32 - hi0bits(S->x[S->wds-1]) : 1) + s2) & 0x1f;
+       if (i)
                i = 32 - i;
 #define iInc 28
 #else