summaryrefslogtreecommitdiff
path: root/ext/standard/array.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/standard/array.c')
-rw-r--r--ext/standard/array.c18
1 files changed, 4 insertions, 14 deletions
diff --git a/ext/standard/array.c b/ext/standard/array.c
index 40a27c0536..0eaca16618 100644
--- a/ext/standard/array.c
+++ b/ext/standard/array.c
@@ -352,7 +352,7 @@ PHP_FUNCTION(count)
/* Numbers are always smaller than strings int this function as it
* anyway doesn't make much sense to compare two different data types.
- * This keeps it consistant and simple.
+ * This keeps it consistent and simple.
*
* This is not correct any more, depends on what compare_func is set to.
*/
@@ -1053,7 +1053,7 @@ PHP_FUNCTION(max)
static int php_array_walk(HashTable *target_hash, zval *userdata, int recursive TSRMLS_DC) /* {{{ */
{
zval **args[3], /* Arguments to userland function */
- *retval_ptr, /* Return value - unused */
+ *retval_ptr = NULL, /* Return value - unused */
*key=NULL; /* Entry key */
char *string_key;
uint string_key_len;
@@ -2877,7 +2877,7 @@ static int zval_compare(zval **a, zval **b TSRMLS_DC) /* {{{ */
static int zval_user_compare(zval **a, zval **b TSRMLS_DC) /* {{{ */
{
zval **args[2];
- zval *retval_ptr;
+ zval *retval_ptr = NULL;
args[0] = (zval **) a;
args[1] = (zval **) b;
@@ -4037,17 +4037,7 @@ PHP_FUNCTION(array_sum)
entry_n = **entry;
zval_copy_ctor(&entry_n);
convert_scalar_to_number(&entry_n TSRMLS_CC);
-
- 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(entry_n);
- continue;
- }
- }
- convert_to_double(return_value);
- convert_to_double(&entry_n);
- Z_DVAL_P(return_value) += Z_DVAL(entry_n);
+ fast_add_function(return_value, return_value, &entry_n TSRMLS_CC);
}
}
/* }}} */