cvs: ZendEngine2(PHP_5_3) / zend_operators.c

[email protected] ("Dmitry Stogov") Wed, 18 Mar 2009 11:25:37 -0000
Newsgroups php.zend-engine.cvs
Message-ID <cvsdmitry1237375537@cvsserver>
dmitry		Wed Mar 18 11:25:37 2009 UTC

  Modified files:              (Branch: PHP_5_3)
    /ZendEngine2	zend_operators.c 
  Log:
  optimization
  
  
http://cvs.php.net/viewvc.cgi/ZendEngine2/zend_operators.c?r1=1.208.2.4.2.23.2.21&r2=1.208.2.4.2.23.2.22&diff_format=u
Index: ZendEngine2/zend_operators.c
diff -u ZendEngine2/zend_operators.c:1.208.2.4.2.23.2.21 ZendEngine2/zend_operators.c:1.208.2.4.2.23.2.22
--- ZendEngine2/zend_operators.c:1.208.2.4.2.23.2.21	Wed Mar 18 10:18:10 2009
+++ ZendEngine2/zend_operators.c	Wed Mar 18 11:25:37 2009
@@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: zend_operators.c,v 1.208.2.4.2.23.2.21 2009/03/18 10:18:10 dmitry Exp $ */
+/* $Id: zend_operators.c,v 1.208.2.4.2.23.2.22 2009/03/18 11:25:37 dmitry Exp $ */
 
 #include <ctype.h>
 
@@ -1736,10 +1736,10 @@
 		case IS_STRING: {
 				long lval;
 				double dval;
-				char *strval = Z_STRVAL_P(op1);
 
-				switch (is_numeric_string(strval, Z_STRLEN_P(op1), &lval, &dval, 0)) {
+				switch (is_numeric_string(Z_STRVAL_P(op1), Z_STRLEN_P(op1), &lval, &dval, 0)) {
 					case IS_LONG:
+						efree(Z_STRVAL_P(op1));
 						if (lval == LONG_MAX) {
 							/* switch to double */
 							double d = (double)lval;
@@ -1747,11 +1747,10 @@
 						} else {
 							ZVAL_LONG(op1, lval+1);
 						}
-						efree(strval); /* should never be empty_string */
 						break;
 					case IS_DOUBLE:
+						efree(Z_STRVAL_P(op1));
 						ZVAL_DOUBLE(op1, dval+1);
-						efree(strval); /* should never be empty_string */
 						break;
 					default:
 						/* Perl style string increment */