Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:8118 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 21484 invoked by uid 1010); 25 Feb 2004 11:38:33 -0000 Delivered-To: ezmlm-scan-internals@lists.php.net Delivered-To: ezmlm-internals@lists.php.net Received: (qmail 21460 invoked from network); 25 Feb 2004 11:38:32 -0000 Received: from unknown (HELO smtp-out3.xs4all.nl) (194.109.24.13) by pb1.pair.com with SMTP; 25 Feb 2004 11:38:32 -0000 Received: from php.net (hetty.xs4all.nl [80.126.21.70]) by smtp-out3.xs4all.nl (8.12.10/8.12.10) with ESMTP id i1PBcVWl010110 for ; Wed, 25 Feb 2004 12:38:31 +0100 (CET) Message-ID: <403C894A.3020600@php.net> Date: Wed, 25 Feb 2004 12:38:50 +0100 User-Agent: Mozilla Thunderbird 0.5 (Windows/20040207) X-Accept-Language: en-us, en MIME-Version: 1.0 To: internals@lists.php.net Content-Type: multipart/mixed; boundary="------------090501070800000002060509" Subject: [Fwd: PATCH: operator precedence test and some wordsize stuff] From: abies@php.net (Ard Biesheuvel) --------------090501070800000002060509 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Wrong list, sorry -------- Original Message -------- Subject: PATCH: operator precedence test and some wordsize stuff Date: Wed, 25 Feb 2004 12:03:27 +0100 From: abies@php.net (Ard Biesheuvel) To: zend-engine-cvs@lists.php.net Newsgroups: php.zend-engine.cvs Followup-To: php.dev -- Ard --------------090501070800000002060509 Content-Type: text/plain; name="zend.patch.txt" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="zend.patch.txt" Index: Zend/zend_constants.h =================================================================== RCS file: /repository/ZendEngine2/zend_constants.h,v retrieving revision 1.29 diff -u -r1.29 zend_constants.h --- Zend/zend_constants.h 23 Jan 2004 03:28:59 -0000 1.29 +++ Zend/zend_constants.h 25 Feb 2004 10:59:57 -0000 @@ -27,7 +27,7 @@ #define CONST_CS (1<<0) /* Case Sensitive */ #define CONST_PERSISTENT (1<<1) /* Persistent */ -#define PHP_USER_CONSTANT LONG_MAX /* a constant defined in user space */ +#define PHP_USER_CONSTANT INT_MAX /* a constant defined in user space */ typedef struct _zend_constant { zval value; Index: Zend/zend_operators.c =================================================================== RCS file: /repository/ZendEngine2/zend_operators.c,v retrieving revision 1.176 diff -u -r1.176 zend_operators.c --- Zend/zend_operators.c 22 Feb 2004 20:02:26 -0000 1.176 +++ Zend/zend_operators.c 25 Feb 2004 10:59:57 -0000 @@ -33,8 +33,6 @@ #include "ext/bcmath/number.h" #endif -#define LONG_SIGN_MASK (1L << (8*sizeof(long)-1)) - ZEND_API int zend_atoi(const char *str, int str_len) { int retval; @@ -678,8 +676,8 @@ long lval = op1->value.lval + op2->value.lval; /* check for overflow by comparing sign bits */ - if ( (op1->value.lval & LONG_SIGN_MASK) == (op2->value.lval & LONG_SIGN_MASK) - && (op1->value.lval & LONG_SIGN_MASK) != (lval & LONG_SIGN_MASK)) { + if ( (op1->value.lval & LONG_MIN) == (op2->value.lval & LONG_MIN) + && (op1->value.lval & LONG_MIN) != (lval & LONG_MIN)) { result->value.dval = (double) op1->value.lval + (double) op2->value.lval; result->type = IS_DOUBLE; @@ -718,8 +716,8 @@ long lval = op1->value.lval - op2->value.lval; /* check for overflow by comparing sign bits */ - if ( (op1->value.lval & LONG_SIGN_MASK) != (op2->value.lval & LONG_SIGN_MASK) - && (op1->value.lval & LONG_SIGN_MASK) != (lval & LONG_SIGN_MASK)) { + if ( (op1->value.lval & LONG_MIN) != (op2->value.lval & LONG_MIN) + && (op1->value.lval & LONG_MIN) != (lval & LONG_MIN)) { result->value.dval = (double) op1->value.lval - (double) op2->value.lval; result->type = IS_DOUBLE; Index: Zend/zend_operators.h =================================================================== RCS file: /repository/ZendEngine2/zend_operators.h,v retrieving revision 1.86 diff -u -r1.86 zend_operators.h --- Zend/zend_operators.h 20 Feb 2004 08:03:27 -0000 1.86 +++ Zend/zend_operators.h 25 Feb 2004 10:59:57 -0000 @@ -34,7 +34,7 @@ #include "ext/bcmath/libbcmath/src/bcmath.h" #endif -#define MAX_LENGTH_OF_LONG 18 +#define MAX_LENGTH_OF_LONG 20 #define MAX_LENGTH_OF_DOUBLE 32 BEGIN_EXTERN_C() Index: Zend/tests/zend_operators.phpt =================================================================== RCS file: Zend/tests/zend_operators.phpt diff -N Zend/tests/zend_operators.phpt --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ Zend/tests/zend_operators.phpt 25 Feb 2004 10:59:57 -0000 @@ -0,0 +1,12 @@ +--TEST-- +Operator precedence +--FILE-- + +--EXPECT-- +bool(true) +bool(true) --------------090501070800000002060509--