From: Johannes Schlüter Date: Mon, 3 Nov 2008 19:27:48 +0000 (+0000) Subject: Use a better function name for closure related errors and debug_backtrace() X-Git-Tag: BEFORE_HEAD_NS_CHANGE~103 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=23e04b542c586312d32204d94ece3c54e6633302;p=php 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 956992049e..da547211b5 100644 --- a/Zend/zend_compile.c +++ b/Zend/zend_compile.c @@ -1460,7 +1460,7 @@ void zend_do_begin_lambda_function_declaration(znode *result, znode *function_to zend_op *current_op; function_name.op_type = IS_CONST; - ZVAL_ASCII_STRING(&function_name.u.constant, "", ZSTR_DUPLICATE); + ZVAL_ASCII_STRING(&function_name.u.constant, "{closure}", ZSTR_DUPLICATE); zend_do_begin_function_declaration(function_token, &function_name, 0, return_reference, NULL TSRMLS_CC); @@ -1475,7 +1475,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; } /* }}} */