Browse Source

Fix bug #75533: array_reduce is slow when $carry is large array

pull/3492/merge
Manabu Matsui 9 years ago
committed by Nikita Popov
parent
commit
ab6c45f524
  1. 2
      NEWS
  2. 4
      ext/standard/array.c

2
NEWS

@ -22,6 +22,8 @@ PHP NEWS
data connection). (Ville Hukkamäki)
. Fixed bug #74764 (Bindto IPv6 works with file_get_contents but fails with
stream_socket_client). (Ville Hukkamäki)
. Fixed bug #75533 (array_reduce is slow when $carry is large array).
(Manabu Matsui)
- Zlib:
. Fixed bug #75273 (php_zlib_inflate_filter() may not update bytes_consumed).

4
ext/standard/array.c

@ -5231,19 +5231,17 @@ PHP_FUNCTION(array_reduce)
fci.no_separation = 0;
ZEND_HASH_FOREACH_VAL(htbl, operand) {
ZVAL_COPY(&args[0], &result);
ZVAL_COPY_VALUE(&args[0], &result);
ZVAL_COPY(&args[1], operand);
fci.params = args;
if (zend_call_function(&fci, &fci_cache) == SUCCESS && Z_TYPE(retval) != IS_UNDEF) {
zval_ptr_dtor(&args[1]);
zval_ptr_dtor(&args[0]);
zval_ptr_dtor(&result);
ZVAL_COPY_VALUE(&result, &retval);
} else {
zval_ptr_dtor(&args[1]);
zval_ptr_dtor(&args[0]);
zval_ptr_dtor(&result);
return;
}
} ZEND_HASH_FOREACH_END();

Loading…
Cancel
Save