summaryrefslogtreecommitdiff
path: root/Zend/zend_execute.c
diff options
context:
space:
mode:
authorNikita Popov <nikic@php.net>2013-08-29 11:35:11 +0200
committerNikita Popov <nikic@php.net>2014-01-11 12:42:08 +0100
commit2c47dfbaebb203ab547f3c7e786cb1db5e84674a (patch)
tree0afe28b1bc1a9de0861b61bbbe9eeceb289edfde /Zend/zend_execute.c
parentc7bb28333804403c1e7cd817386ea1d527ad25e6 (diff)
downloadphp-git-2c47dfbaebb203ab547f3c7e786cb1db5e84674a.tar.gz
Implement argument unpacking
RFC: https://wiki.php.net/rfc/argument_unpacking
Diffstat (limited to 'Zend/zend_execute.c')
-rw-r--r--Zend/zend_execute.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c
index 99bb5e02a9..172f1731d0 100644
--- a/Zend/zend_execute.c
+++ b/Zend/zend_execute.c
@@ -1684,6 +1684,13 @@ ZEND_API zend_execute_data *zend_create_execute_data_from_op_array(zend_op_array
}
/* }}} */
+zend_always_inline zend_bool zend_is_by_ref_func_arg_fetch(zend_op *opline, call_slot *call TSRMLS_DC) /* {{{ */
+{
+ zend_uint arg_num = (opline->extended_value & ZEND_FETCH_ARG_MASK) + call->num_additional_args;
+ return ARG_SHOULD_BE_SENT_BY_REF(call->fbc, arg_num);
+}
+/* }}} */
+
#define ZEND_VM_NEXT_OPCODE() \
CHECK_SYMBOL_TABLES() \
ZEND_VM_INC_OPCODE(); \