diff options
Diffstat (limited to 'Zend/zend_operators.c')
-rw-r--r-- | Zend/zend_operators.c | 39 |
1 files changed, 0 insertions, 39 deletions
diff --git a/Zend/zend_operators.c b/Zend/zend_operators.c index db60de5229..b050a8d94d 100644 --- a/Zend/zend_operators.c +++ b/Zend/zend_operators.c @@ -30,7 +30,6 @@ #include "zend_multiply.h" #include "zend_strtod.h" #include "zend_exceptions.h" -#include "zend_float.h" #define LONG_SIGN_MASK (1L << (8*sizeof(long)-1)) @@ -776,7 +775,6 @@ ZEND_API void multi_convert_to_string_ex(int argc, ...) ZEND_API int add_function(zval *result, zval *op1, zval *op2 TSRMLS_DC) { - ZEND_FLOAT_DECLARE zval op1_copy, op2_copy; int converted = 0; @@ -789,9 +787,7 @@ ZEND_API int add_function(zval *result, zval *op1, zval *op2 TSRMLS_DC) if ((Z_LVAL_P(op1) & LONG_SIGN_MASK) == (Z_LVAL_P(op2) & LONG_SIGN_MASK) && (Z_LVAL_P(op1) & LONG_SIGN_MASK) != (lval & LONG_SIGN_MASK)) { - ZEND_FLOAT_ENSURE(); ZVAL_DOUBLE(result, (double) Z_LVAL_P(op1) + (double) Z_LVAL_P(op2)); - ZEND_FLOAT_RESTORE(); } else { ZVAL_LONG(result, lval); } @@ -799,21 +795,15 @@ ZEND_API int add_function(zval *result, zval *op1, zval *op2 TSRMLS_DC) } case TYPE_PAIR(IS_LONG, IS_DOUBLE): - ZEND_FLOAT_ENSURE(); ZVAL_DOUBLE(result, ((double)Z_LVAL_P(op1)) + Z_DVAL_P(op2)); - ZEND_FLOAT_RESTORE(); return SUCCESS; case TYPE_PAIR(IS_DOUBLE, IS_LONG): - ZEND_FLOAT_ENSURE(); ZVAL_DOUBLE(result, Z_DVAL_P(op1) + ((double)Z_LVAL_P(op2))); - ZEND_FLOAT_RESTORE(); return SUCCESS; case TYPE_PAIR(IS_DOUBLE, IS_DOUBLE): - ZEND_FLOAT_ENSURE(); ZVAL_DOUBLE(result, Z_DVAL_P(op1) + Z_DVAL_P(op2)); - ZEND_FLOAT_RESTORE(); return SUCCESS; case TYPE_PAIR(IS_ARRAY, IS_ARRAY): { @@ -847,7 +837,6 @@ ZEND_API int add_function(zval *result, zval *op1, zval *op2 TSRMLS_DC) ZEND_API int sub_function(zval *result, zval *op1, zval *op2 TSRMLS_DC) { - ZEND_FLOAT_DECLARE zval op1_copy, op2_copy; int converted = 0; @@ -860,9 +849,7 @@ ZEND_API int sub_function(zval *result, zval *op1, zval *op2 TSRMLS_DC) if ((Z_LVAL_P(op1) & LONG_SIGN_MASK) != (Z_LVAL_P(op2) & LONG_SIGN_MASK) && (Z_LVAL_P(op1) & LONG_SIGN_MASK) != (lval & LONG_SIGN_MASK)) { - ZEND_FLOAT_ENSURE(); ZVAL_DOUBLE(result, (double) Z_LVAL_P(op1) - (double) Z_LVAL_P(op2)); - ZEND_FLOAT_RESTORE(); } else { ZVAL_LONG(result, lval); } @@ -870,21 +857,15 @@ ZEND_API int sub_function(zval *result, zval *op1, zval *op2 TSRMLS_DC) } case TYPE_PAIR(IS_LONG, IS_DOUBLE): - ZEND_FLOAT_ENSURE(); ZVAL_DOUBLE(result, ((double)Z_LVAL_P(op1)) - Z_DVAL_P(op2)); - ZEND_FLOAT_RESTORE(); return SUCCESS; case TYPE_PAIR(IS_DOUBLE, IS_LONG): - ZEND_FLOAT_ENSURE(); ZVAL_DOUBLE(result, Z_DVAL_P(op1) - ((double)Z_LVAL_P(op2))); - ZEND_FLOAT_RESTORE(); return SUCCESS; case TYPE_PAIR(IS_DOUBLE, IS_DOUBLE): - ZEND_FLOAT_ENSURE(); ZVAL_DOUBLE(result, Z_DVAL_P(op1) - Z_DVAL_P(op2)); - ZEND_FLOAT_RESTORE(); return SUCCESS; default: @@ -903,7 +884,6 @@ ZEND_API int sub_function(zval *result, zval *op1, zval *op2 TSRMLS_DC) ZEND_API int mul_function(zval *result, zval *op1, zval *op2 TSRMLS_DC) { - ZEND_FLOAT_DECLARE zval op1_copy, op2_copy; int converted = 0; @@ -912,29 +892,21 @@ ZEND_API int mul_function(zval *result, zval *op1, zval *op2 TSRMLS_DC) case TYPE_PAIR(IS_LONG, IS_LONG): { long overflow; - ZEND_FLOAT_ENSURE(); ZEND_SIGNED_MULTIPLY_LONG(Z_LVAL_P(op1),Z_LVAL_P(op2), Z_LVAL_P(result),Z_DVAL_P(result),overflow); - ZEND_FLOAT_RESTORE(); Z_TYPE_P(result) = overflow ? IS_DOUBLE : IS_LONG; return SUCCESS; } case TYPE_PAIR(IS_LONG, IS_DOUBLE): - ZEND_FLOAT_ENSURE(); ZVAL_DOUBLE(result, ((double)Z_LVAL_P(op1)) * Z_DVAL_P(op2)); - ZEND_FLOAT_RESTORE(); return SUCCESS; case TYPE_PAIR(IS_DOUBLE, IS_LONG): - ZEND_FLOAT_ENSURE(); ZVAL_DOUBLE(result, Z_DVAL_P(op1) * ((double)Z_LVAL_P(op2))); - ZEND_FLOAT_RESTORE(); return SUCCESS; case TYPE_PAIR(IS_DOUBLE, IS_DOUBLE): - ZEND_FLOAT_ENSURE(); ZVAL_DOUBLE(result, Z_DVAL_P(op1) * Z_DVAL_P(op2)); - ZEND_FLOAT_RESTORE(); return SUCCESS; default: @@ -952,7 +924,6 @@ ZEND_API int mul_function(zval *result, zval *op1, zval *op2 TSRMLS_DC) ZEND_API int div_function(zval *result, zval *op1, zval *op2 TSRMLS_DC) { - ZEND_FLOAT_DECLARE zval op1_copy, op2_copy; int converted = 0; @@ -965,17 +936,13 @@ ZEND_API int div_function(zval *result, zval *op1, zval *op2 TSRMLS_DC) return FAILURE; /* division by zero */ } else if (Z_LVAL_P(op2) == -1 && Z_LVAL_P(op1) == LONG_MIN) { /* Prevent overflow error/crash */ - ZEND_FLOAT_ENSURE(); ZVAL_DOUBLE(result, (double) LONG_MIN / -1); - ZEND_FLOAT_RESTORE(); return SUCCESS; } if (Z_LVAL_P(op1) % Z_LVAL_P(op2) == 0) { /* integer */ ZVAL_LONG(result, Z_LVAL_P(op1) / Z_LVAL_P(op2)); } else { - ZEND_FLOAT_ENSURE(); ZVAL_DOUBLE(result, ((double) Z_LVAL_P(op1)) / Z_LVAL_P(op2)); - ZEND_FLOAT_RESTORE(); } return SUCCESS; @@ -985,9 +952,7 @@ ZEND_API int div_function(zval *result, zval *op1, zval *op2 TSRMLS_DC) ZVAL_BOOL(result, 0); return FAILURE; /* division by zero */ } - ZEND_FLOAT_ENSURE(); ZVAL_DOUBLE(result, Z_DVAL_P(op1) / (double)Z_LVAL_P(op2)); - ZEND_FLOAT_RESTORE(); return SUCCESS; case TYPE_PAIR(IS_LONG, IS_DOUBLE): @@ -996,9 +961,7 @@ ZEND_API int div_function(zval *result, zval *op1, zval *op2 TSRMLS_DC) ZVAL_BOOL(result, 0); return FAILURE; /* division by zero */ } - ZEND_FLOAT_ENSURE(); ZVAL_DOUBLE(result, (double)Z_LVAL_P(op1) / Z_DVAL_P(op2)); - ZEND_FLOAT_RESTORE(); return SUCCESS; case TYPE_PAIR(IS_DOUBLE, IS_DOUBLE): @@ -1007,9 +970,7 @@ ZEND_API int div_function(zval *result, zval *op1, zval *op2 TSRMLS_DC) ZVAL_BOOL(result, 0); return FAILURE; /* division by zero */ } - ZEND_FLOAT_ENSURE(); ZVAL_DOUBLE(result, Z_DVAL_P(op1) / Z_DVAL_P(op2)); - ZEND_FLOAT_RESTORE(); return SUCCESS; default: |