summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFabien Villepinte <fabien.villepinte@gmail.com>2017-04-18 17:03:42 +0200
committerJoe Watkins <krakjoe@php.net>2017-05-02 06:20:40 +0100
commitf50df1d0e33aaf5007670966ca067318e064df82 (patch)
treed76530b047111e6d09dd803f40568e25184ad866
parenta581e641994908af2ffdcac652ad14c34fbdef4c (diff)
downloadphp-git-f50df1d0e33aaf5007670966ca067318e064df82.tar.gz
Fix bug #74468 wrong reflection on Collator::sortWithSortKeys
-rw-r--r--NEWS3
-rw-r--r--ext/intl/collator/collator_class.c6
-rw-r--r--ext/intl/php_intl.c7
-rw-r--r--ext/intl/tests/bug74468.phpt22
4 files changed, 35 insertions, 3 deletions
diff --git a/NEWS b/NEWS
index 3ee633eae6..ec8b4f91f3 100644
--- a/NEWS
+++ b/NEWS
@@ -2,7 +2,8 @@ PHP NEWS
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
?? ??? 2017 PHP 7.0.20
-
+- intl:
+ . Fixed bug #74468 (wrong reflection on Collator::sortWithSortKeys). (villfa)
11 May 2017 PHP 7.0.19
diff --git a/ext/intl/collator/collator_class.c b/ext/intl/collator/collator_class.c
index 4fc7067708..0821cb19d8 100644
--- a/ext/intl/collator/collator_class.c
+++ b/ext/intl/collator/collator_class.c
@@ -95,6 +95,10 @@ ZEND_BEGIN_ARG_INFO_EX( collator_sort_args, 0, 0, 1 )
ZEND_ARG_INFO( 0, flags )
ZEND_END_ARG_INFO()
+ZEND_BEGIN_ARG_INFO_EX( collator_sort_with_sort_keys_args, 0, 0, 1 )
+ ZEND_ARG_ARRAY_INFO( 1, arr, 0 )
+ZEND_END_ARG_INFO()
+
/* }}} */
/* {{{ Collator_class_functions
@@ -106,7 +110,7 @@ zend_function_entry Collator_class_functions[] = {
ZEND_FENTRY( create, ZEND_FN( collator_create ), collator_1_arg, ZEND_ACC_PUBLIC|ZEND_ACC_STATIC )
PHP_NAMED_FE( compare, ZEND_FN( collator_compare ), collator_2_args )
PHP_NAMED_FE( sort, ZEND_FN( collator_sort ), collator_sort_args )
- PHP_NAMED_FE( sortWithSortKeys, ZEND_FN( collator_sort_with_sort_keys ), collator_sort_args )
+ PHP_NAMED_FE( sortWithSortKeys, ZEND_FN( collator_sort_with_sort_keys ), collator_sort_with_sort_keys_args )
PHP_NAMED_FE( asort, ZEND_FN( collator_asort ), collator_sort_args )
PHP_NAMED_FE( getAttribute, ZEND_FN( collator_get_attribute ), collator_1_arg )
PHP_NAMED_FE( setAttribute, ZEND_FN( collator_set_attribute ), collator_2_args )
diff --git a/ext/intl/php_intl.c b/ext/intl/php_intl.c
index fd35e57120..787cb48fcc 100644
--- a/ext/intl/php_intl.c
+++ b/ext/intl/php_intl.c
@@ -159,6 +159,11 @@ ZEND_BEGIN_ARG_INFO_EX(collator_sort_args, 0, 0, 2)
ZEND_ARG_INFO(0, sort_flags)
ZEND_END_ARG_INFO()
+ZEND_BEGIN_ARG_INFO_EX(collator_sort_with_sort_keys_args, 0, 0, 2)
+ ZEND_ARG_OBJ_INFO(0, coll, Collator, 0)
+ ZEND_ARG_ARRAY_INFO(1, arr, 0)
+ZEND_END_ARG_INFO()
+
ZEND_BEGIN_ARG_INFO_EX(numfmt_parse_arginfo, 0, 0, 2)
ZEND_ARG_INFO(0, formatter)
ZEND_ARG_INFO(0, string)
@@ -645,7 +650,7 @@ zend_function_entry intl_functions[] = {
PHP_FE( collator_get_strength, collator_0_args )
PHP_FE( collator_set_strength, collator_1_arg )
PHP_FE( collator_sort, collator_sort_args )
- PHP_FE( collator_sort_with_sort_keys, collator_sort_args )
+ PHP_FE( collator_sort_with_sort_keys, collator_sort_with_sort_keys_args )
PHP_FE( collator_asort, collator_sort_args )
PHP_FE( collator_get_locale, collator_1_arg )
PHP_FE( collator_get_error_code, collator_0_args )
diff --git a/ext/intl/tests/bug74468.phpt b/ext/intl/tests/bug74468.phpt
new file mode 100644
index 0000000000..63d469efb4
--- /dev/null
+++ b/ext/intl/tests/bug74468.phpt
@@ -0,0 +1,22 @@
+--TEST--
+Bug #74468 Wrong reflection on Collator::sortWithSortKeys
+--SKIPIF--
+<?php if( !extension_loaded( 'intl' ) ) print 'skip'; ?>
+<?php if (version_compare(INTL_ICU_VERSION, '51.2') >= 0) die('skip for ICU < 51.2'); ?>
+--FILE--
+<?php
+$rm = new ReflectionMethod(Collator::class, 'sortWithSortKeys');
+var_dump($rm->getNumberOfParameters());
+var_dump($rm->getNumberOfRequiredParameters());
+
+$rf = new ReflectionFunction('collator_sort_with_sort_keys');
+var_dump($rf->getNumberOfParameters());
+var_dump($rf->getNumberOfRequiredParameters());
+?>
+===DONE===
+--EXPECT--
+int(1)
+int(1)
+int(2)
+int(2)
+===DONE===