zend_fcall_info API

php.internals

Michael Wallner

19 years ago
Hi, I'd like to see zend_fcall_info_init() signature extended with an additional 'zval *callable_name' argument. Additionally it seems that a vararg version of the zend_fcall_info_args() function would be valuable too: int zend_fcall_info_argv(zend_fcall_info *fci TSRMLS_DC, int argc, ...) { int i; zval *arg; va_list argv; if (fci->params) { while (fci->param_count) { zval_ptr_dtor(fci->params[--fci->param_count]); } efree(fci->params); } fci->params = (zval***)safe_emalloc(sizeof(zval**), argc, 0); fci->param_count = argc; va_start(argv, argc); for (i = 0; i < argc; ++i) { arg = va_arg(argv, zval *); ZVAL_ADDREF(arg); fci->params[i] = &arg; } va_end(argv); return SUCCESS; }
-- Michael

Michael Wallner

19 years ago
Michael Wallner wrote:
> Hi, > > I'd like to see zend_fcall_info_init() signature extended with an additional 'zval *callable_name' argument. > Additionally it seems that a vararg version of the zend_fcall_info_args() function would be valuable too:
Please see attached patch. Regards,
-- Michael

Marcus Börger

19 years ago
Hello Michael, looks nice to me. Only question i have is why not mark the new funcs ZEND_API? Is that following the development we went through with the stuff when i proposed it up to when it got comitted? best regards marcus Wednesday, October 4, 2006, 10:42:08 AM, you wrote:
> Michael Wallner wrote: >> Hi, >> >> I'd like to see zend_fcall_info_init() signature extended with an additional 'zval *callable_name' argument. >> Additionally it seems that a vararg version of the zend_fcall_info_args() function would be valuable too:
> Please see attached patch.
> Regards,
Best regards, Marcus

Michael Wallner

19 years ago
Marcus Boerger wrote:
> Hello Michael, > > looks nice to me. Only question i have is why not mark the new funcs ZEND_API?
Well, right. I could at least make use of zend_fcall_info_args_clear() in output.c.
> Is that following the development we went through with the stuff when i proposed > it up to when it got comitted?
Pardon? :) Regards,
-- Michael