diff options
author | Tjerk Meesters <datibbaw@php.net> | 2014-10-14 22:50:07 +0800 |
---|---|---|
committer | Tjerk Meesters <datibbaw@php.net> | 2014-10-14 22:50:07 +0800 |
commit | fb35d7c56ec32ca43bcdb3e151bf1766b52984fe (patch) | |
tree | 7f2f94c03fe0e4cd80c2fa024ed6168bb7b50cf7 /ext/spl/spl_engine.h | |
parent | 4773c1dfdc10b2175422b4fda83a48e4792b90a1 (diff) | |
parent | 71ba533640a33bf6d034637ad68c145dec3180ba (diff) | |
download | php-git-fb35d7c56ec32ca43bcdb3e151bf1766b52984fe.tar.gz |
Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
Fixed bug #68128
Diffstat (limited to 'ext/spl/spl_engine.h')
-rw-r--r-- | ext/spl/spl_engine.h | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/ext/spl/spl_engine.h b/ext/spl/spl_engine.h index a67e60c105..473438bb7a 100644 --- a/ext/spl/spl_engine.h +++ b/ext/spl/spl_engine.h @@ -49,6 +49,41 @@ static inline int spl_instantiate_arg_ex2(zend_class_entry *pce, zval **retval, } /* }}} */ +/* {{{ spl_instantiate_arg_n */ +static inline void spl_instantiate_arg_n(zend_class_entry *pce, zval **retval, int argc, zval ***argv TSRMLS_DC) +{ + zend_function *func = pce->constructor; + zend_fcall_info fci; + zend_fcall_info_cache fcc; + zval *dummy; + zval z_name; + + spl_instantiate(pce, retval, 0 TSRMLS_CC); + + ZVAL_STRING(&z_name, func->common.function_name, 0); + + fci.size = sizeof(zend_fcall_info); + fci.function_table = &pce->function_table; + fci.function_name = &z_name; + fci.object_ptr = *retval; + fci.symbol_table = NULL; + fci.retval_ptr_ptr = &dummy; + fci.param_count = argc; + fci.params = argv; + fci.no_separation = 1; + + fcc.initialized = 1; + fcc.function_handler = func; + fcc.calling_scope = EG(scope); + fcc.called_scope = pce; + fcc.object_ptr = *retval; + + zend_call_function(&fci, &fcc TSRMLS_CC); + + zval_ptr_dtor(&dummy); +} +/* }}} */ + #endif /* SPL_ENGINE_H */ /* |