From: Antony Dovgal Date: Thu, 7 Aug 2008 08:36:15 +0000 (+0000) Subject: fix bug #45712 ($something == NaN returns true with 5.3, false with 5.2.*) X-Git-Tag: BEFORE_HEAD_NS_CHANGE~835 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=951fe380b3779794ad43046a3035c87218068630;p=php fix bug #45712 ($something == NaN returns true with 5.3, false with 5.2.*) --- diff --git a/Zend/zend_operators.c b/Zend/zend_operators.c index c40549a83b..7fef787715 100644 --- a/Zend/zend_operators.c +++ b/Zend/zend_operators.c @@ -1975,15 +1975,18 @@ ZEND_API int compare_function(zval *result, zval *op1, zval *op2 TSRMLS_DC) /* { return SUCCESS; case TYPE_PAIR(IS_DOUBLE, IS_LONG): - ZVAL_LONG(result, Z_DVAL_P(op1)>((double)Z_LVAL_P(op2))?1:(Z_DVAL_P(op1)<((double)Z_LVAL_P(op2))?-1:0)); + Z_DVAL_P(result) = Z_DVAL_P(op1) - (double)Z_LVAL_P(op2); + ZVAL_LONG(result, ZEND_NORMALIZE_BOOL(Z_DVAL_P(result))); return SUCCESS; case TYPE_PAIR(IS_LONG, IS_DOUBLE): - ZVAL_LONG(result, ((double)Z_LVAL_P(op1))>Z_DVAL_P(op2)?1:(((double)Z_LVAL_P(op1))Z_DVAL_P(op2)?1:(Z_DVAL_P(op1)