diff options
author | Andrea Faulds <ajf@ajf.me> | 2014-09-17 20:41:20 +0100 |
---|---|---|
committer | Andrea Faulds <ajf@ajf.me> | 2014-09-17 20:41:20 +0100 |
commit | 545c296ef4b5ffdb1cf59583c55129f08d75601b (patch) | |
tree | 8f9c1f4250f8b6f7570e9f768ef521ba5102e538 /Zend/zend_operators.h | |
parent | 7f51d73bb2aef3fb8b50b6a7e76ebb11f86813fa (diff) | |
download | php-git-545c296ef4b5ffdb1cf59583c55129f08d75601b.tar.gz |
Fixed if/else if ordering
Diffstat (limited to 'Zend/zend_operators.h')
-rw-r--r-- | Zend/zend_operators.h | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/Zend/zend_operators.h b/Zend/zend_operators.h index 256429dddb..bf35f35a10 100644 --- a/Zend/zend_operators.h +++ b/Zend/zend_operators.h @@ -83,7 +83,9 @@ static zend_always_inline zend_long zend_dval_to_lval(double d) #elif SIZEOF_ZEND_LONG == 4 static zend_always_inline zend_long zend_dval_to_lval(double d) { - if (d > ZEND_LONG_MAX || d < ZEND_LONG_MIN) { + if (UNEXPECTED(!zend_finite(d)) || UNEXPECTED(zend_isnan(d))) { + return 0; + } else if (d > ZEND_LONG_MAX || d < ZEND_LONG_MIN) { double two_pow_32 = pow(2., 32.), dmod; @@ -94,16 +96,16 @@ static zend_always_inline zend_long zend_dval_to_lval(double d) dmod = ceil(dmod) + two_pow_32; } return (zend_long)(zend_ulong)dmod; - } else if (UNEXPECTED(!zend_finite(d)) || UNEXPECTED(zend_isnan(d))) { - return 0; } return (zend_long)d; } #else static zend_always_inline zend_long zend_dval_to_lval(double d) { + if (UNEXPECTED(!zend_finite(d)) || UNEXPECTED(zend_isnan(d))) { + return 0; /* >= as (double)ZEND_LONG_MAX is outside signed range */ - if (d >= ZEND_LONG_MAX || d < ZEND_LONG_MIN) { + } else if (d >= ZEND_LONG_MAX || d < ZEND_LONG_MIN) { double two_pow_64 = pow(2., 64.), dmod; @@ -114,8 +116,6 @@ static zend_always_inline zend_long zend_dval_to_lval(double d) dmod += two_pow_64; } return (zend_long)(zend_ulong)dmod; - } else if (UNEXPECTED(!zend_finite(d)) || UNEXPECTED(zend_isnan(d))) { - return 0; } return (zend_long)d; } |