summaryrefslogtreecommitdiff
path: root/ext/spl/spl_engine.h
diff options
context:
space:
mode:
authorTjerk Meesters <datibbaw@php.net>2014-10-14 23:00:17 +0800
committerTjerk Meesters <datibbaw@php.net>2014-10-14 23:00:17 +0800
commit1f4f2ef403e8b8df206bf337cc475483b4ba0a2f (patch)
tree92be14f8c86dad508744cc147c6c5092cd6082ec /ext/spl/spl_engine.h
parentd2daa19701bdf0ac72bb6c23d868949185ca6723 (diff)
parentfb35d7c56ec32ca43bcdb3e151bf1766b52984fe (diff)
downloadphp-git-1f4f2ef403e8b8df206bf337cc475483b4ba0a2f.tar.gz
Merge branch 'PHP-5.6'
* PHP-5.6: Fixed bug #68128 Conflicts: ext/spl/spl_iterators.c
Diffstat (limited to 'ext/spl/spl_engine.h')
-rw-r--r--ext/spl/spl_engine.h30
1 files changed, 30 insertions, 0 deletions
diff --git a/ext/spl/spl_engine.h b/ext/spl/spl_engine.h
index a621355ba4..8fa5539ba5 100644
--- a/ext/spl/spl_engine.h
+++ b/ext/spl/spl_engine.h
@@ -51,6 +51,36 @@ static inline int spl_instantiate_arg_ex2(zend_class_entry *pce, zval *retval, z
}
/* }}} */
+/* {{{ 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;
+
+ spl_instantiate(pce, retval TSRMLS_CC);
+
+ fci.size = sizeof(zend_fcall_info);
+ fci.function_table = &pce->function_table;
+ ZVAL_STR(&fci.function_name, func->common.function_name);
+ fci.object = Z_OBJ_P(retval);
+ fci.symbol_table = NULL;
+ fci.retval = &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 = Z_OBJ_P(retval);
+
+ zend_call_function(&fci, &fcc TSRMLS_CC);
+}
+/* }}} */
+
#endif /* SPL_ENGINE_H */
/*