summaryrefslogtreecommitdiff
path: root/Zend/zend_API.c
diff options
context:
space:
mode:
Diffstat (limited to 'Zend/zend_API.c')
-rw-r--r--Zend/zend_API.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/Zend/zend_API.c b/Zend/zend_API.c
index 01d6d49f07..e9925bd1ac 100644
--- a/Zend/zend_API.c
+++ b/Zend/zend_API.c
@@ -159,6 +159,28 @@ ZEND_API int _zend_get_parameters_array_ex(int param_count, zval ***argument_arr
}
+ZEND_API int zend_copy_parameters_array(int param_count, zval *argument_array TSRMLS_DC)
+{
+ void **p;
+ int arg_count;
+
+ p = EG(argument_stack).top_element-2;
+ arg_count = (ulong) *p;
+
+ if (param_count>arg_count) {
+ return FAILURE;
+ }
+
+ while (param_count-->0) {
+ zval **param = (zval **) p-(arg_count--);
+ zval_add_ref(param);
+ add_next_index_zval(argument_array, *param);
+ }
+
+ return SUCCESS;
+}
+
+
ZEND_API void zend_wrong_param_count(TSRMLS_D)
{
zend_error(E_WARNING, "Wrong parameter count for %s()", get_active_function_name(TSRMLS_C));