summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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 891c444494..959298f1a9 100644
--- a/NEWS
+++ b/NEWS
@@ -2,7 +2,8 @@ PHP NEWS
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
?? ??? 2017, PHP 7.1.6
-
+- intl:
+ . Fixed bug #74468 (wrong reflection on Collator::sortWithSortKeys). (villfa)
11 May 2017, PHP 7.1.5
diff --git a/ext/intl/collator/collator_class.c b/ext/intl/collator/collator_class.c
index 11aaea58e7..23b03b52fb 100644
--- a/ext/intl/collator/collator_class.c
+++ b/ext/intl/collator/collator_class.c
@@ -88,6 +88,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
@@ -99,7 +103,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 1f20e42191..69e62ca301 100644
--- a/ext/intl/php_intl.c
+++ b/ext/intl/php_intl.c
@@ -154,6 +154,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)
@@ -629,7 +634,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===