cvs: php4(PHP_4_2_0) /ext/standard array.c
| From: | Andrei Zmievski | Date: | Wed, 24 Apr 2002 15:29:39 +0000 |
| Subject: | cvs: php4(PHP_4_2_0) /ext/standard array.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-11392@lists.php.net to get a copy of this message | ||
andrei Wed Apr 24 11:29:39 2002 EDT
Modified files: (Branch: PHP_4_2_0)
/php4/ext/standard array.c
Log:
MFH.
Index: php4/ext/standard/array.c
diff -u php4/ext/standard/array.c:1.157 php4/ext/standard/array.c:1.157.2.1
--- php4/ext/standard/array.c:1.157 Fri Mar 1 07:00:05 2002
+++ php4/ext/standard/array.c Wed Apr 24 11:29:38 2002
@@ -21,7 +21,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: array.c,v 1.157 2002/03/01 12:00:05 zeev Exp $ */
+/* $Id: array.c,v 1.157.2.1 2002/04/24 15:29:38 andrei Exp $ */
#include "php.h"
#include "php_ini.h"
@@ -1945,6 +1945,7 @@
array_init(return_value);
for (i=0; i<argc; i++) {
+ SEPARATE_ZVAL(args[i]);
convert_to_array_ex(args[i]);
php_array_merge(Z_ARRVAL_P(return_value), Z_ARRVAL_PP(args[i]), recursive);
}
@@ -2925,7 +2926,8 @@
PHP_FUNCTION(array_sum)
{
zval **input,
- **entry;
+ **entry,
+ entry_n;
int argc = ZEND_NUM_ARGS();
HashPosition pos;
double dval;
@@ -2949,19 +2951,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);
}
}