From 4a10eb4f53dbe1b543e9043fd2e249200291abcc Mon Sep 17 00:00:00 2001 From: =?utf8?q?M=C3=A1t=C3=A9=20Kocsis?= Date: Sat, 30 May 2020 11:06:49 +0200 Subject: [PATCH] Fix #79653 Unexpected error for ArrayIterator::ksort() Closes GH-5644 --- ext/spl/spl_array.stub.php | 2 +- ext/spl/spl_array_arginfo.h | 2 +- ext/spl/tests/arrayIterator_ksort_basic1.phpt | 24 +++++++++++++++++++ 3 files changed, 26 insertions(+), 2 deletions(-) create mode 100644 ext/spl/tests/arrayIterator_ksort_basic1.phpt diff --git a/ext/spl/spl_array.stub.php b/ext/spl/spl_array.stub.php index 41cc787b16..7b1ae02afc 100755 --- a/ext/spl/spl_array.stub.php +++ b/ext/spl/spl_array.stub.php @@ -186,7 +186,7 @@ class ArrayIterator implements SeekableIterator, ArrayAccess, Serializable, Coun /** * @param int $sort_flags * @return bool - * @alias ArrayObject::offsetExists + * @alias ArrayObject::ksort */ public function ksort($sort_flags = SORT_REGULAR) {} diff --git a/ext/spl/spl_array_arginfo.h b/ext/spl/spl_array_arginfo.h index ac69fd70e9..11aa7dfc83 100644 --- a/ext/spl/spl_array_arginfo.h +++ b/ext/spl/spl_array_arginfo.h @@ -218,7 +218,7 @@ static const zend_function_entry class_ArrayIterator_methods[] = { ZEND_MALIAS(ArrayObject, getFlags, getFlags, arginfo_class_ArrayIterator_getFlags, ZEND_ACC_PUBLIC) ZEND_MALIAS(ArrayObject, setFlags, setFlags, arginfo_class_ArrayIterator_setFlags, ZEND_ACC_PUBLIC) ZEND_MALIAS(ArrayObject, asort, asort, arginfo_class_ArrayIterator_asort, ZEND_ACC_PUBLIC) - ZEND_MALIAS(ArrayObject, ksort, offsetExists, arginfo_class_ArrayIterator_ksort, ZEND_ACC_PUBLIC) + ZEND_MALIAS(ArrayObject, ksort, ksort, arginfo_class_ArrayIterator_ksort, ZEND_ACC_PUBLIC) ZEND_MALIAS(ArrayObject, uasort, uasort, arginfo_class_ArrayIterator_uasort, ZEND_ACC_PUBLIC) ZEND_MALIAS(ArrayObject, uksort, uksort, arginfo_class_ArrayIterator_uksort, ZEND_ACC_PUBLIC) ZEND_MALIAS(ArrayObject, natsort, natsort, arginfo_class_ArrayIterator_natsort, ZEND_ACC_PUBLIC) diff --git a/ext/spl/tests/arrayIterator_ksort_basic1.phpt b/ext/spl/tests/arrayIterator_ksort_basic1.phpt new file mode 100644 index 0000000000..642827a28f --- /dev/null +++ b/ext/spl/tests/arrayIterator_ksort_basic1.phpt @@ -0,0 +1,24 @@ +--TEST-- +Bug #79653: Unexpected error for ArrayIterator::ksort() +--FILE-- + 1, 2 => 2, 1 => 3]; +$arrIter = new ArrayIterator($array); +var_dump($arrIter->ksort()); +var_dump($arrIter); + +?> +--EXPECT-- +bool(true) +object(ArrayIterator)#1 (1) { + ["storage":"ArrayIterator":private]=> + array(3) { + [1]=> + int(3) + [2]=> + int(2) + [3]=> + int(1) + } +} -- 2.50.1