From: Johannes Schlüter Date: Mon, 3 Nov 2008 19:28:32 +0000 (+0000) Subject: MFH: Use a better function name for closure related errors and debug_backtrace() X-Git-Tag: BEFORE_NS_RULES_CHANGE~114 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=850f9567b8df31b5173f381b925af477f164a977;p=php MFH: Use a better function name for closure related errors and debug_backtrace() --- diff --git a/Zend/tests/closure_027.phpt b/Zend/tests/closure_027.phpt index 7787f729e5..f26e114045 100644 --- a/Zend/tests/closure_027.phpt +++ b/Zend/tests/closure_027.phpt @@ -25,7 +25,7 @@ NULL Notice: Undefined variable: y in %s on line %d -Warning: Missing argument 1 for (), called in %s on line %d and defined in %s on line %d +Warning: Missing argument 1 for {closure}(), called in %s on line %d and defined in %s on line %d NULL Catchable fatal error: Argument 1 passed to test() must be an instance of Closure, instance of stdClass given, called in %s on line %d and defined in %s on line %d diff --git a/Zend/tests/closure_032.phpt b/Zend/tests/closure_032.phpt new file mode 100644 index 0000000000..6072f0d8d1 --- /dev/null +++ b/Zend/tests/closure_032.phpt @@ -0,0 +1,65 @@ +--TEST-- +Closure 032: Testing Closure and debug_backtrace +--FILE-- + +--EXPECTF-- +Array +( + [0] => Array + ( + [file] => %s + [line] => %d + [function] => {closure} + [args] => Array + ( + [0] => 23 + ) + + ) + +) +#0 {closure}(23) called at [%s:%d] +Array +( + [0] => Array + ( + [file] => %s + [line] => %d + [function] => {closure} + [args] => Array + ( + [0] => 23 + ) + + ) + + [1] => Array + ( + [file] => %s + [line] => %d + [function] => test + [args] => Array + ( + [0] => Closure Object + ( + ) + + ) + + ) + +) +#0 {closure}(23) called at [%s:%d] +#1 test(Closure Object ()) called at [%s:%d] + diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c index daf67de39f..368f8e92a9 100644 --- a/Zend/zend_compile.c +++ b/Zend/zend_compile.c @@ -1387,7 +1387,7 @@ void zend_do_begin_lambda_function_declaration(znode *result, znode *function_to zend_op *current_op; function_name.op_type = IS_CONST; - ZVAL_STRINGL(&function_name.u.constant, "", sizeof("")-1, 1); + ZVAL_STRINGL(&function_name.u.constant, "{closure}", sizeof("{closure}")-1, 1); zend_do_begin_function_declaration(function_token, &function_name, 0, return_reference, NULL TSRMLS_CC); @@ -1402,7 +1402,7 @@ void zend_do_begin_lambda_function_declaration(znode *result, znode *function_to if (is_static) { CG(active_op_array)->fn_flags |= ZEND_ACC_STATIC; } - CG(active_op_array)->fn_flags |= ZEND_ACC_CLOSURE; + CG(active_op_array)->fn_flags |= ZEND_ACC_CLOSURE; }