summaryrefslogtreecommitdiff
path: root/Zend/zend_execute_API.c
diff options
context:
space:
mode:
authorStanislav Malyshev <stas@php.net>2012-10-05 08:14:20 +0200
committerStanislav Malyshev <stas@php.net>2012-10-05 08:14:20 +0200
commit531e2533dd2baf5cf10e8de7074ca0b94386dba4 (patch)
tree7407ddaafd80f6a121db76b56d5afad68b4fe191 /Zend/zend_execute_API.c
parentbda93f54059f99752d03c1d27a6128d6b4264858 (diff)
downloadphp-git-531e2533dd2baf5cf10e8de7074ca0b94386dba4.tar.gz
Use zend_execute_internal always to call internal functions
Diffstat (limited to 'Zend/zend_execute_API.c')
-rw-r--r--Zend/zend_execute_API.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/Zend/zend_execute_API.c b/Zend/zend_execute_API.c
index 271d753247..9787966f27 100644
--- a/Zend/zend_execute_API.c
+++ b/Zend/zend_execute_API.c
@@ -39,7 +39,7 @@
#endif
ZEND_API void (*zend_execute)(zend_op_array *op_array TSRMLS_DC);
-ZEND_API void (*zend_execute_internal)(zend_execute_data *execute_data_ptr, int return_value_used TSRMLS_DC);
+ZEND_API void (*zend_execute_internal)(zend_execute_data *execute_data_ptr, zend_fcall_info *fci, int return_value_used TSRMLS_DC);
/* true globals */
ZEND_API const zend_fcall_info empty_fcall_info = { 0, NULL, NULL, NULL, NULL, 0, NULL, NULL, 0 };
@@ -976,15 +976,12 @@ int zend_call_function(zend_fcall_info *fci, zend_fcall_info_cache *fci_cache TS
if (EX(function_state).function->common.scope) {
EG(scope) = EX(function_state).function->common.scope;
}
-
- if (!zend_execute_internal) {
+ if(EXPECTED(zend_execute_internal == NULL)) {
/* saves one function call if zend_execute_internal is not used */
((zend_internal_function *) EX(function_state).function)->handler(fci->param_count, *fci->retval_ptr_ptr, fci->retval_ptr_ptr, fci->object_ptr, 1 TSRMLS_CC);
} else {
- zend_execute_internal(&execute_data, 1 TSRMLS_CC);
+ zend_execute_internal(&execute_data, fci, 1 TSRMLS_CC);
}
-
-
/* We shouldn't fix bad extensions here,
because it can break proper ones (Bug #34045)
if (!EX(function_state).function->common.return_reference)