diff options
author | Dmitry Stogov <dmitry@zend.com> | 2015-02-25 10:37:21 +0300 |
---|---|---|
committer | Dmitry Stogov <dmitry@zend.com> | 2015-02-25 10:37:21 +0300 |
commit | c2c78dc963a3360035dfaca417fa3351bd6c5e1f (patch) | |
tree | 2533a5efee372d1fab427614b80be8ae673bcfe1 /Zend/zend_execute_API.c | |
parent | 5f278e4d3a97ea0777e471424b52110386f1742e (diff) | |
download | php-git-c2c78dc963a3360035dfaca417fa3351bd6c5e1f.tar.gz |
Added specialized versions of DO_FCALL handler:
DO_ICALL - for internal functions
DO_UCALL - for user functions
DO_FCALL_BY_NAME - plain, most probably user, funcstions (not methods)
Diffstat (limited to 'Zend/zend_execute_API.c')
-rw-r--r-- | Zend/zend_execute_API.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/Zend/zend_execute_API.c b/Zend/zend_execute_API.c index fc94beeb7f..f52d9f33ce 100644 --- a/Zend/zend_execute_API.c +++ b/Zend/zend_execute_API.c @@ -691,7 +691,10 @@ int zend_call_function(zend_fcall_info *fci, zend_fcall_info_cache *fci_cache) / EG(current_execute_data) = &dummy_execute_data; } else if (EG(current_execute_data)->func && ZEND_USER_CODE(EG(current_execute_data)->func->common.type) && - EG(current_execute_data)->opline->opcode != ZEND_DO_FCALL) { + EG(current_execute_data)->opline->opcode != ZEND_DO_FCALL && + EG(current_execute_data)->opline->opcode != ZEND_DO_ICALL && + EG(current_execute_data)->opline->opcode != ZEND_DO_UCALL && + EG(current_execute_data)->opline->opcode != ZEND_DO_FCALL_BY_NAME) { /* Insert fake frame in case of include or magic calls */ dummy_execute_data = *EG(current_execute_data); dummy_execute_data.prev_execute_data = EG(current_execute_data); |