diff options
Diffstat (limited to 'Zend/zend_API.c')
| -rw-r--r-- | Zend/zend_API.c | 22 |
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)); |
