Browse Source

Use zend_sort in array_multisort (tests change is expected)

pull/1955/head
Xinchen Hui 10 years ago
parent
commit
eb65db0808
  1. 2
      ext/standard/array.c
  2. 22
      ext/standard/tests/array/array_multisort_variation7.phpt
  3. 8
      ext/standard/tests/array/array_multisort_variation8.phpt
  4. 28
      ext/standard/tests/array/array_multisort_variation9.phpt

2
ext/standard/array.c

@ -4989,7 +4989,7 @@ PHP_FUNCTION(array_multisort)
}
/* Do the actual sort magic - bada-bim, bada-boom. */
zend_qsort(indirect, array_size, sizeof(Bucket *), php_multisort_compare, (swap_func_t)array_bucket_p_sawp);
zend_sort(indirect, array_size, sizeof(Bucket *), php_multisort_compare, (swap_func_t)array_bucket_p_sawp);
/* Restructure the arrays based on sorted indirect - this is mostly taken from zend_hash_sort() function. */
for (i = 0; i < num_arrays; i++) {

22
ext/standard/tests/array/array_multisort_variation7.phpt

@ -41,28 +41,28 @@ var_dump($inputs);
*** Testing array_multisort() : usage variation - test sort order of all types***
bool(true)
array(10) {
["empty string DQ"]=>
string(0) ""
["float -10.5"]=>
float(-10.5)
["int 0"]=>
int(0)
[0]=>
array(0) {
}
["uppercase NULL"]=>
NULL
["empty string DQ"]=>
string(0) ""
["undefined var"]=>
NULL
[0]=>
array(0) {
}
["lowercase true"]=>
bool(true)
["instance of classWithToString"]=>
object(classWithToString)#1 (0) {
}
["string DQ"]=>
string(6) "string"
["instance of classWithoutToString"]=>
object(classWithoutToString)#2 (0) {
}
["lowercase true"]=>
bool(true)
["float -10.5"]=>
float(-10.5)
["string DQ"]=>
string(6) "string"
}
===DONE===

8
ext/standard/tests/array/array_multisort_variation8.phpt

@ -47,15 +47,15 @@ var_dump($inputs);
*** Testing array_multisort() : usage variation - test sort order of all types***
bool(true)
array(10) {
["empty string DQ"]=>
string(0) ""
["uppercase NULL"]=>
NULL
["undefined var"]=>
NULL
["empty string DQ"]=>
string(0) ""
["instance of classWithoutToString"]=>
object(classWithoutToString)#2 (0) {
}
["undefined var"]=>
NULL
["float -10.5"]=>
float(-10.5)
["int 0"]=>

28
ext/standard/tests/array/array_multisort_variation9.phpt

@ -42,9 +42,7 @@ var_dump($inputs);
Notice: Object of class classWithToString could not be converted to float in %sarray_multisort_variation9.php on line %d
Notice: Object of class classWithoutToString could not be converted to float in %sarray_multisort_variation9.php on line %d
Notice: Object of class classWithoutToString could not be converted to float in %sarray_multisort_variation9.php on line %d
Notice: Object of class classWithToString could not be converted to float in %sarray_multisort_variation9.php on line %d
Notice: Object of class classWithoutToString could not be converted to float in %sarray_multisort_variation9.php on line %d
@ -53,26 +51,26 @@ bool(true)
array(10) {
["float -10.5"]=>
float(-10.5)
["string DQ"]=>
string(6) "string"
["undefined var"]=>
NULL
["empty string DQ"]=>
string(0) ""
["uppercase NULL"]=>
NULL
["int 0"]=>
int(0)
[0]=>
array(0) {
}
["instance of classWithoutToString"]=>
object(classWithoutToString)#2 (0) {
}
["uppercase NULL"]=>
NULL
["empty string DQ"]=>
string(0) ""
["string DQ"]=>
string(6) "string"
["undefined var"]=>
NULL
["lowercase true"]=>
bool(true)
["instance of classWithToString"]=>
object(classWithToString)#1 (0) {
}
["instance of classWithoutToString"]=>
object(classWithoutToString)#2 (0) {
}
}
===DONE===
===DONE===
Loading…
Cancel
Save