summaryrefslogtreecommitdiff
path: root/Zend/zend_execute.c
diff options
context:
space:
mode:
authorc9s <yoan@maicoin.com>2019-03-01 14:15:32 +0800
committerNikita Popov <nikita.ppv@gmail.com>2019-03-01 16:14:11 +0100
commit7c351ba65ca861470373dd1467138d668dcac5f3 (patch)
treeb10bfd1b6d7c69ab9b545b504860817d85df0055 /Zend/zend_execute.c
parent51dacafc64336bc7fa02de1ec032d651b1d2b0e1 (diff)
downloadphp-git-7c351ba65ca861470373dd1467138d668dcac5f3.tar.gz
Fix out-dated docs and typo
[ci skip]
Diffstat (limited to 'Zend/zend_execute.c')
-rw-r--r--Zend/zend_execute.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c
index 70669e5fd1..e71075c9d4 100644
--- a/Zend/zend_execute.c
+++ b/Zend/zend_execute.c
@@ -3261,7 +3261,7 @@ ZEND_API void zend_free_compiled_variables(zend_execute_data *execute_data) /* {
* +========================================+
* EG(current_execute_data) -> | zend_execute_data |
* +----------------------------------------+
- * EX_CV_NUM(0) ---------> | VAR[0] = ARG[1] |
+ * EX_VAR_NUM(0) --------> | VAR[0] = ARG[1] |
* | ... |
* | VAR[op_array->num_args-1] = ARG[N] |
* | ... |
@@ -3274,6 +3274,15 @@ ZEND_API void zend_free_compiled_variables(zend_execute_data *execute_data) /* {
* +----------------------------------------+
*/
+/* zend_copy_extra_args is used when the actually passed number of arguments
+ * (EX_NUM_ARGS) is greater than what the function defined (op_array->num_args).
+ *
+ * The extra arguments will be copied into the call frame after all the compiled variables.
+ *
+ * If there are extra arguments copied, a flag "ZEND_CALL_FREE_EXTRA_ARGS" will be set
+ * on the zend_execute_data, and when the executor leaves the function, the
+ * args will be freed in zend_leave_helper.
+ */
static zend_never_inline void zend_copy_extra_args(EXECUTE_DATA_D)
{
zend_op_array *op_array = &EX(func)->op_array;