diff options
author | Dmitry Stogov <dmitry@zend.com> | 2014-06-26 23:51:14 +0400 |
---|---|---|
committer | Dmitry Stogov <dmitry@zend.com> | 2014-06-26 23:51:14 +0400 |
commit | c69781393cd42db7479d24f39e0f55f1b7f1d355 (patch) | |
tree | 833ca756144355abb31cf13d7d4b76f379651bfd /ext/spl/php_spl.c | |
parent | 0f9d5baba23209bec2c1881941c3765d43c2b2ce (diff) | |
download | php-git-c69781393cd42db7479d24f39e0f55f1b7f1d355.tar.gz |
Refactoring: merge call_frame and end_execute_data into single data structure. Keep only single copy of each argument on VM stack (previously ZE kept two copies of each arguments for user functions)
Diffstat (limited to 'ext/spl/php_spl.c')
-rw-r--r-- | ext/spl/php_spl.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/ext/spl/php_spl.c b/ext/spl/php_spl.c index 22e2a0c671..5ec20cd563 100644 --- a/ext/spl/php_spl.c +++ b/ext/spl/php_spl.c @@ -292,6 +292,10 @@ static int spl_autoload(zend_string *class_name, zend_string *lc_name, const cha } ZVAL_UNDEF(&result); + if (EG(current_execute_data)) { + EG(current_execute_data)->call = zend_vm_stack_push_call_frame( + (zend_function*)new_op_array, 0, 0, EG(called_scope), Z_OBJ(EG(This)), EG(current_execute_data)->call TSRMLS_CC); + } zend_execute(new_op_array, &result TSRMLS_CC); destroy_op_array(new_op_array TSRMLS_CC); |