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]