diff options
| author | Dmitry Stogov <dmitry@zend.com> | 2014-12-22 16:44:39 +0300 |
|---|---|---|
| committer | Dmitry Stogov <dmitry@zend.com> | 2014-12-22 16:44:39 +0300 |
| commit | 2646f7bcb98dcdd322ea21701c8bb101104ea619 (patch) | |
| tree | 6cfa66ba666378de3c59759079e17f3245af0281 /Zend/zend_closures.c | |
| parent | 2bc63e7b6d348e9210ec09facb4bedb6f4ab921a (diff) | |
| download | php-git-2646f7bcb98dcdd322ea21701c8bb101104ea619.tar.gz | |
Don't count variadic argument in zend_func.common.num_args. This allows faster CALL/RETURN code.
Diffstat (limited to 'Zend/zend_closures.c')
| -rw-r--r-- | Zend/zend_closures.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/Zend/zend_closures.c b/Zend/zend_closures.c index 0b0ae2e4d4..51585fec91 100644 --- a/Zend/zend_closures.c +++ b/Zend/zend_closures.c @@ -361,11 +361,15 @@ static HashTable *zend_closure_get_debug_info(zval *object, int *is_temp) /* {{{ } if (arg_info) { - uint32_t i, required = closure->func.common.required_num_args; + uint32_t i, num_args, required = closure->func.common.required_num_args; array_init(&val); - for (i = 0; i < closure->func.common.num_args; i++) { + num_args = closure->func.common.num_args; + if (closure->func.common.fn_flags & ZEND_ACC_VARIADIC) { + num_args++; + } + for (i = 0; i < num_args; i++) { zend_string *name; zval info; if (arg_info->name) { |
