Browse Source

Fixed bug #24897 (inconsistent behavior of shuffle() & array_multisort())

PEAR_1_4DEV
Ilia Alshanetsky 23 years ago
parent
commit
e5b7d5ccb4
  1. 4
      ext/standard/array.c
  2. 21
      ext/standard/tests/array/bug24897.phpt

4
ext/standard/array.c

@ -1639,7 +1639,7 @@ static void array_data_shuffle(zval *array TSRMLS_DC)
n_elems = zend_hash_num_elements(Z_ARRVAL_P(array));
if (n_elems <= 1) {
if (n_elems < 1) {
return;
}
@ -3150,7 +3150,7 @@ PHP_FUNCTION(array_multisort)
}
/* If all arrays are empty or have only one entry, we don't need to do anything. */
if (array_size <= 1) {
if (array_size < 1) {
for (k = 0; k < MULTISORT_LAST; k++)
efree(ARRAYG(multisort_flags)[k]);
efree(arrays);

21
ext/standard/tests/array/bug24897.phpt

@ -0,0 +1,21 @@
--TEST--
Bug #24897 (inconsistent behaviour or shuffle() & array_multisort())
--FILE--
<?php
$a = array(1 => 2);
shuffle($a);
var_dump($a);
$a = array(1 => 2);
array_multisort($a);
var_dump($a);
?>
--EXPECT--
array(1) {
[0]=>
int(2)
}
array(1) {
[0]=>
int(2)
}
Loading…
Cancel
Save