Commit: c3f34796a053f5ff1016d872f8c339e32468783f Author: Felipe Pena <felipe...@gmail.com> Sat, 23 Jun 2012 15:10:47 -0300 Parents: 84b1c568f4d593c2f415b05f3b1b8bd0465eec27 Branches: PHP-5.3 PHP-5.4 master
Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=c3f34796a053f5ff1016d872f8c339e32468783f Log: - Improved fix for #62384 Bugs: https://bugs.php.net/62384 Changed paths: M ext/reflection/php_reflection.c Diff: diff --git a/ext/reflection/php_reflection.c b/ext/reflection/php_reflection.c index 966c9a5..180ce8f 100644 --- a/ext/reflection/php_reflection.c +++ b/ext/reflection/php_reflection.c @@ -2749,12 +2749,10 @@ ZEND_METHOD(reflection_method, invokeArgs) fcc.object_ptr = object; /* - * Closure::__invoke() actually expects a copy of zend_function, so that it - * frees it after the invoking. + * Copy the zend_function when calling via handler (e.g. Closure::__invoke()) */ - if (obj_ce == zend_ce_closure && object && - strlen(mptr->common.function_name) == sizeof(ZEND_INVOKE_FUNC_NAME)-1 && - memcmp(mptr->common.function_name, ZEND_INVOKE_FUNC_NAME, sizeof(ZEND_INVOKE_FUNC_NAME)-1) == 0) { + if (mptr->type == ZEND_INTERNAL_FUNCTION && + (mptr->internal_function.fn_flags & ZEND_ACC_CALL_VIA_HANDLER) != 0) { fcc.function_handler = _copy_function(mptr TSRMLS_CC); } -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php