The patch is attached, for line-breaking reasons. I also noted a probably-wrong if-statement, added a comment about that, but didn't fix it. Would someone have a look at it. IMPORTANT: did *not* test the patch, as I doen't have the equip here to compile. Greetz, Jeroen Jeroen van Wolffelaar [EMAIL PROTECTED] http://www.A-Eskwadraat.nl/~jeroen
Index: zend_operators.c =================================================================== RCS file: /repository/Zend/zend_operators.c,v retrieving revision 1.100 diff -u -r1.100 zend_operators.c --- zend_operators.c 2001/05/10 12:58:31 1.100 +++ zend_operators.c 2001/06/26 12:09:17 @@ -597,6 +597,11 @@ return SUCCESS; } if (result != op1) { + /* jeroen: this is not implied by result!=op1 + * condition should be: result==op1, then + * result!=op2 is implied because of the + * previous if-statement + * Note: not sure on this one, so left unchanged */ /* $a += $b */ *result = *op1; zval_copy_ctor(result); @@ -611,7 +616,7 @@ if (op1->type == IS_LONG && op2->type == IS_LONG) { double dval = (double) op1->value.lval + (double) op2->value.lval; - if (dval > (double) LONG_MAX) { + if (dval > (double) LONG_MAX || dval < (double) LONG_MIN ) { result->value.dval = dval; result->type = IS_DOUBLE; } else { @@ -648,7 +653,7 @@ if (op1->type == IS_LONG && op2->type == IS_LONG) { double dval = (double) op1->value.lval - (double) op2->value.lval; - if (dval < (double) LONG_MIN) { + if (dval > (double) LONG_MAX || dval < (double) LONG_MIN) { result->value.dval = dval; result->type = IS_DOUBLE; } else { @@ -685,7 +690,7 @@ if (op1->type == IS_LONG && op2->type == IS_LONG) { double dval = (double) op1->value.lval * (double) op2->value.lval; - if (dval > (double) LONG_MAX) { + if (dval > (double) LONG_MAX || dval < (double) LONG_MIN) { result->value.dval = dval; result->type = IS_DOUBLE; } else {
-- PHP Development Mailing List <http://www.php.net/> To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] To contact the list administrators, e-mail: [EMAIL PROTECTED]