cvs: php4 /ext/standard array.c

From: Date: Wed, 24 Apr 2002 15:23:43 +0000
Subject: cvs: php4 /ext/standard array.c
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-11390@lists.php.net to get a copy of this message
andrei Wed Apr 24 11:23:43 2002 EDT Modified files: /php4/ext/standard array.c Log: Fix Bug #14795. Index: php4/ext/standard/array.c diff -u php4/ext/standard/array.c:1.160 php4/ext/standard/array.c:1.161 --- php4/ext/standard/array.c:1.160 Wed Apr 24 11:01:53 2002 +++ php4/ext/standard/array.c Wed Apr 24 11:23:43 2002 @@ -21,7 +21,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: array.c,v 1.160 2002/04/24 15:01:53 andrei Exp $ */ +/* $Id: array.c,v 1.161 2002/04/24 15:23:43 andrei Exp $ */ #include "php.h" #include "php_ini.h" @@ -2924,7 +2924,8 @@ PHP_FUNCTION(array_sum) { zval **input, - **entry; + **entry, + entry_n; int argc = ZEND_NUM_ARGS(); HashPosition pos; double dval; @@ -2948,19 +2949,20 @@ if (Z_TYPE_PP(entry) == IS_ARRAY || Z_TYPE_PP(entry) == IS_OBJECT) continue; - SEPARATE_ZVAL(entry); - convert_scalar_to_number(*entry TSRMLS_CC); + entry_n = **entry; + zval_copy_ctor(&entry_n); + convert_scalar_to_number(&entry_n TSRMLS_CC); - if (Z_TYPE_PP(entry) == IS_LONG && Z_TYPE_P(return_value) == IS_LONG) { - dval = (double)Z_LVAL_P(return_value) + (double)Z_LVAL_PP(entry); + if (Z_TYPE(entry_n) == IS_LONG && Z_TYPE_P(return_value) == IS_LONG) { + dval = (double)Z_LVAL_P(return_value) + (double)Z_LVAL(entry_n); if ( (double)LONG_MIN <= dval && dval <= (double)LONG_MAX ) { - Z_LVAL_P(return_value) += Z_LVAL_PP(entry); + Z_LVAL_P(return_value) += Z_LVAL(entry_n); continue; } } convert_to_double(return_value); - convert_to_double_ex(entry); - Z_DVAL_P(return_value) += Z_DVAL_PP(entry); + convert_to_double(&entry_n); + Z_DVAL_P(return_value) += Z_DVAL(entry_n); } }

« previous php.cvs (#11390) next »