mirror of
https://github.com/php/php-src.git
synced 2024-09-22 02:17:32 +00:00
Merge branch 'PHP-7.1' into PHP-7.2
This commit is contained in:
commit
15efa985df
2
NEWS
2
NEWS
@ -5,6 +5,8 @@ PHP NEWS
|
|||||||
- Core
|
- Core
|
||||||
. Fixed bug #75220 (Segfault when calling is_callable on parent).
|
. Fixed bug #75220 (Segfault when calling is_callable on parent).
|
||||||
(andrewnester)
|
(andrewnester)
|
||||||
|
. Fixed bug #75290 (debug info of Closures of internal functions contain
|
||||||
|
garbage argument names). (Andrea)
|
||||||
|
|
||||||
- Date:
|
- Date:
|
||||||
. Fixed bug #75222 (DateInterval microseconds property always 0). (jhdxr)
|
. Fixed bug #75222 (DateInterval microseconds property always 0). (jhdxr)
|
||||||
|
26
Zend/tests/bug75290.phpt
Normal file
26
Zend/tests/bug75290.phpt
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
--TEST--
|
||||||
|
Bug #75290 (debug info of Closures of internal functions contain garbage argument names)
|
||||||
|
--FILE--
|
||||||
|
<?php
|
||||||
|
|
||||||
|
var_dump((new ReflectionFunction('sin'))->getClosure());
|
||||||
|
|
||||||
|
var_dump(function ($someThing) {});
|
||||||
|
|
||||||
|
?>
|
||||||
|
--EXPECT--
|
||||||
|
object(Closure)#2 (1) {
|
||||||
|
["parameter"]=>
|
||||||
|
array(1) {
|
||||||
|
["$number"]=>
|
||||||
|
string(10) "<required>"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
object(Closure)#2 (1) {
|
||||||
|
["parameter"]=>
|
||||||
|
array(1) {
|
||||||
|
["$someThing"]=>
|
||||||
|
string(10) "<required>"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -500,6 +500,7 @@ static HashTable *zend_closure_get_debug_info(zval *object, int *is_temp) /* {{{
|
|||||||
zval val;
|
zval val;
|
||||||
struct _zend_arg_info *arg_info = closure->func.common.arg_info;
|
struct _zend_arg_info *arg_info = closure->func.common.arg_info;
|
||||||
HashTable *debug_info;
|
HashTable *debug_info;
|
||||||
|
zend_bool zstr_args = (closure->func.type == ZEND_USER_FUNCTION) || (closure->func.common.fn_flags & ZEND_ACC_USER_ARG_INFO);
|
||||||
|
|
||||||
*is_temp = 1;
|
*is_temp = 1;
|
||||||
|
|
||||||
@ -532,9 +533,15 @@ static HashTable *zend_closure_get_debug_info(zval *object, int *is_temp) /* {{{
|
|||||||
zend_string *name;
|
zend_string *name;
|
||||||
zval info;
|
zval info;
|
||||||
if (arg_info->name) {
|
if (arg_info->name) {
|
||||||
name = zend_strpprintf(0, "%s$%s",
|
if (zstr_args) {
|
||||||
arg_info->pass_by_reference ? "&" : "",
|
name = zend_strpprintf(0, "%s$%s",
|
||||||
ZSTR_VAL(arg_info->name));
|
arg_info->pass_by_reference ? "&" : "",
|
||||||
|
ZSTR_VAL(arg_info->name));
|
||||||
|
} else {
|
||||||
|
name = zend_strpprintf(0, "%s$%s",
|
||||||
|
arg_info->pass_by_reference ? "&" : "",
|
||||||
|
((zend_internal_arg_info*)arg_info)->name);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
name = zend_strpprintf(0, "%s$param%d",
|
name = zend_strpprintf(0, "%s$param%d",
|
||||||
arg_info->pass_by_reference ? "&" : "",
|
arg_info->pass_by_reference ? "&" : "",
|
||||||
|
Loading…
Reference in New Issue
Block a user