summaryrefslogtreecommitdiff
path: root/Zend/zend_vm_handlers.h
diff options
context:
space:
mode:
authorNikita Popov <nikita.ppv@gmail.com>2020-03-18 14:52:22 +0100
committerNikita Popov <nikita.ppv@gmail.com>2020-03-18 14:54:43 +0100
commitdf79277de35e096c654cf49b5e20960b3b8236c4 (patch)
treede58509991bd13f05148075d8b18794a680ff658 /Zend/zend_vm_handlers.h
parenta5f136b8556cdd6ff3b96f976d0f3b6a25052171 (diff)
downloadphp-git-df79277de35e096c654cf49b5e20960b3b8236c4.tar.gz
Revert "Fetch for read in nested property assignments"
This reverts commit bb43a3822e42dbd15b1d416a166549d3980b379a. After thinking about this a bit more, this is now going to be a complete solution for the "readonly properties" case, for example: unset($foo->readOnly->bar); should also be legal and $foo->readOnly['bar'] = 42; should also be legal if $foo->readOnly is not an array but an ArrayAccess object. I think it may be better to distinguish better on the BP_VAR flag level. Reverting for now.
Diffstat (limited to 'Zend/zend_vm_handlers.h')
-rw-r--r--Zend/zend_vm_handlers.h136
1 files changed, 48 insertions, 88 deletions
diff --git a/Zend/zend_vm_handlers.h b/Zend/zend_vm_handlers.h
index 870506e8e2..e5d50a4083 100644
--- a/Zend/zend_vm_handlers.h
+++ b/Zend/zend_vm_handlers.h
@@ -436,38 +436,22 @@
_(857, ZEND_ASSIGN_DIM_SPEC_CV_CV_OP_DATA_TMP) \
_(858, ZEND_ASSIGN_DIM_SPEC_CV_CV_OP_DATA_VAR) \
_(860, ZEND_ASSIGN_DIM_SPEC_CV_CV_OP_DATA_CV) \
- _(886, ZEND_ASSIGN_OBJ_SPEC_TMPVAR_CONST_OP_DATA_CONST) \
- _(887, ZEND_ASSIGN_OBJ_SPEC_TMPVAR_CONST_OP_DATA_TMP) \
- _(888, ZEND_ASSIGN_OBJ_SPEC_TMPVAR_CONST_OP_DATA_VAR) \
- _(890, ZEND_ASSIGN_OBJ_SPEC_TMPVAR_CONST_OP_DATA_CV) \
- _(891, ZEND_ASSIGN_OBJ_SPEC_TMPVAR_TMPVAR_OP_DATA_CONST) \
- _(892, ZEND_ASSIGN_OBJ_SPEC_TMPVAR_TMPVAR_OP_DATA_TMP) \
- _(893, ZEND_ASSIGN_OBJ_SPEC_TMPVAR_TMPVAR_OP_DATA_VAR) \
- _(895, ZEND_ASSIGN_OBJ_SPEC_TMPVAR_TMPVAR_OP_DATA_CV) \
- _(896, ZEND_ASSIGN_OBJ_SPEC_TMPVAR_TMPVAR_OP_DATA_CONST) \
- _(897, ZEND_ASSIGN_OBJ_SPEC_TMPVAR_TMPVAR_OP_DATA_TMP) \
- _(898, ZEND_ASSIGN_OBJ_SPEC_TMPVAR_TMPVAR_OP_DATA_VAR) \
- _(900, ZEND_ASSIGN_OBJ_SPEC_TMPVAR_TMPVAR_OP_DATA_CV) \
- _(906, ZEND_ASSIGN_OBJ_SPEC_TMPVAR_CV_OP_DATA_CONST) \
- _(907, ZEND_ASSIGN_OBJ_SPEC_TMPVAR_CV_OP_DATA_TMP) \
- _(908, ZEND_ASSIGN_OBJ_SPEC_TMPVAR_CV_OP_DATA_VAR) \
- _(910, ZEND_ASSIGN_OBJ_SPEC_TMPVAR_CV_OP_DATA_CV) \
- _(911, ZEND_ASSIGN_OBJ_SPEC_TMPVAR_CONST_OP_DATA_CONST) \
- _(912, ZEND_ASSIGN_OBJ_SPEC_TMPVAR_CONST_OP_DATA_TMP) \
- _(913, ZEND_ASSIGN_OBJ_SPEC_TMPVAR_CONST_OP_DATA_VAR) \
- _(915, ZEND_ASSIGN_OBJ_SPEC_TMPVAR_CONST_OP_DATA_CV) \
- _(916, ZEND_ASSIGN_OBJ_SPEC_TMPVAR_TMPVAR_OP_DATA_CONST) \
- _(917, ZEND_ASSIGN_OBJ_SPEC_TMPVAR_TMPVAR_OP_DATA_TMP) \
- _(918, ZEND_ASSIGN_OBJ_SPEC_TMPVAR_TMPVAR_OP_DATA_VAR) \
- _(920, ZEND_ASSIGN_OBJ_SPEC_TMPVAR_TMPVAR_OP_DATA_CV) \
- _(921, ZEND_ASSIGN_OBJ_SPEC_TMPVAR_TMPVAR_OP_DATA_CONST) \
- _(922, ZEND_ASSIGN_OBJ_SPEC_TMPVAR_TMPVAR_OP_DATA_TMP) \
- _(923, ZEND_ASSIGN_OBJ_SPEC_TMPVAR_TMPVAR_OP_DATA_VAR) \
- _(925, ZEND_ASSIGN_OBJ_SPEC_TMPVAR_TMPVAR_OP_DATA_CV) \
- _(931, ZEND_ASSIGN_OBJ_SPEC_TMPVAR_CV_OP_DATA_CONST) \
- _(932, ZEND_ASSIGN_OBJ_SPEC_TMPVAR_CV_OP_DATA_TMP) \
- _(933, ZEND_ASSIGN_OBJ_SPEC_TMPVAR_CV_OP_DATA_VAR) \
- _(935, ZEND_ASSIGN_OBJ_SPEC_TMPVAR_CV_OP_DATA_CV) \
+ _(911, ZEND_ASSIGN_OBJ_SPEC_VAR_CONST_OP_DATA_CONST) \
+ _(912, ZEND_ASSIGN_OBJ_SPEC_VAR_CONST_OP_DATA_TMP) \
+ _(913, ZEND_ASSIGN_OBJ_SPEC_VAR_CONST_OP_DATA_VAR) \
+ _(915, ZEND_ASSIGN_OBJ_SPEC_VAR_CONST_OP_DATA_CV) \
+ _(916, ZEND_ASSIGN_OBJ_SPEC_VAR_TMPVAR_OP_DATA_CONST) \
+ _(917, ZEND_ASSIGN_OBJ_SPEC_VAR_TMPVAR_OP_DATA_TMP) \
+ _(918, ZEND_ASSIGN_OBJ_SPEC_VAR_TMPVAR_OP_DATA_VAR) \
+ _(920, ZEND_ASSIGN_OBJ_SPEC_VAR_TMPVAR_OP_DATA_CV) \
+ _(921, ZEND_ASSIGN_OBJ_SPEC_VAR_TMPVAR_OP_DATA_CONST) \
+ _(922, ZEND_ASSIGN_OBJ_SPEC_VAR_TMPVAR_OP_DATA_TMP) \
+ _(923, ZEND_ASSIGN_OBJ_SPEC_VAR_TMPVAR_OP_DATA_VAR) \
+ _(925, ZEND_ASSIGN_OBJ_SPEC_VAR_TMPVAR_OP_DATA_CV) \
+ _(931, ZEND_ASSIGN_OBJ_SPEC_VAR_CV_OP_DATA_CONST) \
+ _(932, ZEND_ASSIGN_OBJ_SPEC_VAR_CV_OP_DATA_TMP) \
+ _(933, ZEND_ASSIGN_OBJ_SPEC_VAR_CV_OP_DATA_VAR) \
+ _(935, ZEND_ASSIGN_OBJ_SPEC_VAR_CV_OP_DATA_CV) \
_(936, ZEND_ASSIGN_OBJ_SPEC_UNUSED_CONST_OP_DATA_CONST) \
_(937, ZEND_ASSIGN_OBJ_SPEC_UNUSED_CONST_OP_DATA_TMP) \
_(938, ZEND_ASSIGN_OBJ_SPEC_UNUSED_CONST_OP_DATA_VAR) \
@@ -522,14 +506,10 @@
_(1038, ZEND_ASSIGN_DIM_OP_SPEC_CV_TMPVAR) \
_(1039, ZEND_ASSIGN_DIM_OP_SPEC_CV_UNUSED) \
_(1040, ZEND_ASSIGN_DIM_OP_SPEC_CV_CV) \
- _(1046, ZEND_ASSIGN_OBJ_OP_SPEC_TMPVAR_CONST) \
- _(1047, ZEND_ASSIGN_OBJ_OP_SPEC_TMPVAR_TMPVAR) \
- _(1048, ZEND_ASSIGN_OBJ_OP_SPEC_TMPVAR_TMPVAR) \
- _(1050, ZEND_ASSIGN_OBJ_OP_SPEC_TMPVAR_CV) \
- _(1051, ZEND_ASSIGN_OBJ_OP_SPEC_TMPVAR_CONST) \
- _(1052, ZEND_ASSIGN_OBJ_OP_SPEC_TMPVAR_TMPVAR) \
- _(1053, ZEND_ASSIGN_OBJ_OP_SPEC_TMPVAR_TMPVAR) \
- _(1055, ZEND_ASSIGN_OBJ_OP_SPEC_TMPVAR_CV) \
+ _(1051, ZEND_ASSIGN_OBJ_OP_SPEC_VAR_CONST) \
+ _(1052, ZEND_ASSIGN_OBJ_OP_SPEC_VAR_TMPVAR) \
+ _(1053, ZEND_ASSIGN_OBJ_OP_SPEC_VAR_TMPVAR) \
+ _(1055, ZEND_ASSIGN_OBJ_OP_SPEC_VAR_CV) \
_(1056, ZEND_ASSIGN_OBJ_OP_SPEC_UNUSED_CONST) \
_(1057, ZEND_ASSIGN_OBJ_OP_SPEC_UNUSED_TMPVAR) \
_(1058, ZEND_ASSIGN_OBJ_OP_SPEC_UNUSED_TMPVAR) \
@@ -547,22 +527,14 @@
_(1093, ZEND_QM_ASSIGN_SPEC_TMP) \
_(1094, ZEND_QM_ASSIGN_SPEC_VAR) \
_(1096, ZEND_QM_ASSIGN_SPEC_CV) \
- _(1124, ZEND_ASSIGN_OBJ_REF_SPEC_TMPVAR_CONST_OP_DATA_VAR) \
- _(1126, ZEND_ASSIGN_OBJ_REF_SPEC_TMPVAR_CONST_OP_DATA_CV) \
- _(1129, ZEND_ASSIGN_OBJ_REF_SPEC_TMPVAR_TMPVAR_OP_DATA_VAR) \
- _(1131, ZEND_ASSIGN_OBJ_REF_SPEC_TMPVAR_TMPVAR_OP_DATA_CV) \
- _(1134, ZEND_ASSIGN_OBJ_REF_SPEC_TMPVAR_TMPVAR_OP_DATA_VAR) \
- _(1136, ZEND_ASSIGN_OBJ_REF_SPEC_TMPVAR_TMPVAR_OP_DATA_CV) \
- _(1144, ZEND_ASSIGN_OBJ_REF_SPEC_TMPVAR_CV_OP_DATA_VAR) \
- _(1146, ZEND_ASSIGN_OBJ_REF_SPEC_TMPVAR_CV_OP_DATA_CV) \
- _(1149, ZEND_ASSIGN_OBJ_REF_SPEC_TMPVAR_CONST_OP_DATA_VAR) \
- _(1151, ZEND_ASSIGN_OBJ_REF_SPEC_TMPVAR_CONST_OP_DATA_CV) \
- _(1154, ZEND_ASSIGN_OBJ_REF_SPEC_TMPVAR_TMPVAR_OP_DATA_VAR) \
- _(1156, ZEND_ASSIGN_OBJ_REF_SPEC_TMPVAR_TMPVAR_OP_DATA_CV) \
- _(1159, ZEND_ASSIGN_OBJ_REF_SPEC_TMPVAR_TMPVAR_OP_DATA_VAR) \
- _(1161, ZEND_ASSIGN_OBJ_REF_SPEC_TMPVAR_TMPVAR_OP_DATA_CV) \
- _(1169, ZEND_ASSIGN_OBJ_REF_SPEC_TMPVAR_CV_OP_DATA_VAR) \
- _(1171, ZEND_ASSIGN_OBJ_REF_SPEC_TMPVAR_CV_OP_DATA_CV) \
+ _(1149, ZEND_ASSIGN_OBJ_REF_SPEC_VAR_CONST_OP_DATA_VAR) \
+ _(1151, ZEND_ASSIGN_OBJ_REF_SPEC_VAR_CONST_OP_DATA_CV) \
+ _(1154, ZEND_ASSIGN_OBJ_REF_SPEC_VAR_TMPVAR_OP_DATA_VAR) \
+ _(1156, ZEND_ASSIGN_OBJ_REF_SPEC_VAR_TMPVAR_OP_DATA_CV) \
+ _(1159, ZEND_ASSIGN_OBJ_REF_SPEC_VAR_TMPVAR_OP_DATA_VAR) \
+ _(1161, ZEND_ASSIGN_OBJ_REF_SPEC_VAR_TMPVAR_OP_DATA_CV) \
+ _(1169, ZEND_ASSIGN_OBJ_REF_SPEC_VAR_CV_OP_DATA_VAR) \
+ _(1171, ZEND_ASSIGN_OBJ_REF_SPEC_VAR_CV_OP_DATA_CV) \
_(1174, ZEND_ASSIGN_OBJ_REF_SPEC_UNUSED_CONST_OP_DATA_VAR) \
_(1176, ZEND_ASSIGN_OBJ_REF_SPEC_UNUSED_CONST_OP_DATA_CV) \
_(1179, ZEND_ASSIGN_OBJ_REF_SPEC_UNUSED_TMPVAR_OP_DATA_VAR) \
@@ -817,14 +789,10 @@
_(1578, ZEND_FETCH_DIM_W_SPEC_CV_TMPVAR) \
_(1579, ZEND_FETCH_DIM_W_SPEC_CV_UNUSED) \
_(1580, ZEND_FETCH_DIM_W_SPEC_CV_CV) \
- _(1586, ZEND_FETCH_OBJ_W_SPEC_TMPVAR_CONST) \
- _(1587, ZEND_FETCH_OBJ_W_SPEC_TMPVAR_TMPVAR) \
- _(1588, ZEND_FETCH_OBJ_W_SPEC_TMPVAR_TMPVAR) \
- _(1590, ZEND_FETCH_OBJ_W_SPEC_TMPVAR_CV) \
- _(1591, ZEND_FETCH_OBJ_W_SPEC_TMPVAR_CONST) \
- _(1592, ZEND_FETCH_OBJ_W_SPEC_TMPVAR_TMPVAR) \
- _(1593, ZEND_FETCH_OBJ_W_SPEC_TMPVAR_TMPVAR) \
- _(1595, ZEND_FETCH_OBJ_W_SPEC_TMPVAR_CV) \
+ _(1591, ZEND_FETCH_OBJ_W_SPEC_VAR_CONST) \
+ _(1592, ZEND_FETCH_OBJ_W_SPEC_VAR_TMPVAR) \
+ _(1593, ZEND_FETCH_OBJ_W_SPEC_VAR_TMPVAR) \
+ _(1595, ZEND_FETCH_OBJ_W_SPEC_VAR_CV) \
_(1596, ZEND_FETCH_OBJ_W_SPEC_UNUSED_CONST) \
_(1597, ZEND_FETCH_OBJ_W_SPEC_UNUSED_TMPVAR) \
_(1598, ZEND_FETCH_OBJ_W_SPEC_UNUSED_TMPVAR) \
@@ -847,14 +815,10 @@
_(1633, ZEND_FETCH_DIM_RW_SPEC_CV_TMPVAR) \
_(1634, ZEND_FETCH_DIM_RW_SPEC_CV_UNUSED) \
_(1635, ZEND_FETCH_DIM_RW_SPEC_CV_CV) \
- _(1641, ZEND_FETCH_OBJ_RW_SPEC_TMPVAR_CONST) \
- _(1642, ZEND_FETCH_OBJ_RW_SPEC_TMPVAR_TMPVAR) \
- _(1643, ZEND_FETCH_OBJ_RW_SPEC_TMPVAR_TMPVAR) \
- _(1645, ZEND_FETCH_OBJ_RW_SPEC_TMPVAR_CV) \
- _(1646, ZEND_FETCH_OBJ_RW_SPEC_TMPVAR_CONST) \
- _(1647, ZEND_FETCH_OBJ_RW_SPEC_TMPVAR_TMPVAR) \
- _(1648, ZEND_FETCH_OBJ_RW_SPEC_TMPVAR_TMPVAR) \
- _(1650, ZEND_FETCH_OBJ_RW_SPEC_TMPVAR_CV) \
+ _(1646, ZEND_FETCH_OBJ_RW_SPEC_VAR_CONST) \
+ _(1647, ZEND_FETCH_OBJ_RW_SPEC_VAR_TMPVAR) \
+ _(1648, ZEND_FETCH_OBJ_RW_SPEC_VAR_TMPVAR) \
+ _(1650, ZEND_FETCH_OBJ_RW_SPEC_VAR_CV) \
_(1651, ZEND_FETCH_OBJ_RW_SPEC_UNUSED_CONST) \
_(1652, ZEND_FETCH_OBJ_RW_SPEC_UNUSED_TMPVAR) \
_(1653, ZEND_FETCH_OBJ_RW_SPEC_UNUSED_TMPVAR) \
@@ -931,14 +895,14 @@
_(1747, ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CONST_TMPVAR) \
_(1748, ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CONST_TMPVAR) \
_(1750, ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CONST_CV) \
- _(1751, ZEND_FETCH_OBJ_FUNC_ARG_SPEC_TMPVAR_CONST) \
- _(1752, ZEND_FETCH_OBJ_FUNC_ARG_SPEC_TMPVAR_TMPVAR) \
- _(1753, ZEND_FETCH_OBJ_FUNC_ARG_SPEC_TMPVAR_TMPVAR) \
- _(1755, ZEND_FETCH_OBJ_FUNC_ARG_SPEC_TMPVAR_CV) \
- _(1756, ZEND_FETCH_OBJ_FUNC_ARG_SPEC_TMPVAR_CONST) \
- _(1757, ZEND_FETCH_OBJ_FUNC_ARG_SPEC_TMPVAR_TMPVAR) \
- _(1758, ZEND_FETCH_OBJ_FUNC_ARG_SPEC_TMPVAR_TMPVAR) \
- _(1760, ZEND_FETCH_OBJ_FUNC_ARG_SPEC_TMPVAR_CV) \
+ _(1751, ZEND_FETCH_OBJ_FUNC_ARG_SPEC_TMP_CONST) \
+ _(1752, ZEND_FETCH_OBJ_FUNC_ARG_SPEC_TMP_TMPVAR) \
+ _(1753, ZEND_FETCH_OBJ_FUNC_ARG_SPEC_TMP_TMPVAR) \
+ _(1755, ZEND_FETCH_OBJ_FUNC_ARG_SPEC_TMP_CV) \
+ _(1756, ZEND_FETCH_OBJ_FUNC_ARG_SPEC_VAR_CONST) \
+ _(1757, ZEND_FETCH_OBJ_FUNC_ARG_SPEC_VAR_TMPVAR) \
+ _(1758, ZEND_FETCH_OBJ_FUNC_ARG_SPEC_VAR_TMPVAR) \
+ _(1760, ZEND_FETCH_OBJ_FUNC_ARG_SPEC_VAR_CV) \
_(1761, ZEND_FETCH_OBJ_FUNC_ARG_SPEC_UNUSED_CONST) \
_(1762, ZEND_FETCH_OBJ_FUNC_ARG_SPEC_UNUSED_TMPVAR) \
_(1763, ZEND_FETCH_OBJ_FUNC_ARG_SPEC_UNUSED_TMPVAR) \
@@ -1115,14 +1079,10 @@
_(2018, ZEND_DO_UCALL_SPEC_RETVAL_USED) \
_(2019, ZEND_DO_FCALL_BY_NAME_SPEC_RETVAL_UNUSED) \
_(2020, ZEND_DO_FCALL_BY_NAME_SPEC_RETVAL_USED) \
- _(2026, ZEND_PRE_INC_OBJ_SPEC_TMPVAR_CONST) \
- _(2027, ZEND_PRE_INC_OBJ_SPEC_TMPVAR_TMPVAR) \
- _(2028, ZEND_PRE_INC_OBJ_SPEC_TMPVAR_TMPVAR) \
- _(2030, ZEND_PRE_INC_OBJ_SPEC_TMPVAR_CV) \
- _(2031, ZEND_PRE_INC_OBJ_SPEC_TMPVAR_CONST) \
- _(2032, ZEND_PRE_INC_OBJ_SPEC_TMPVAR_TMPVAR) \
- _(2033, ZEND_PRE_INC_OBJ_SPEC_TMPVAR_TMPVAR) \
- _(2035, ZEND_PRE_INC_OBJ_SPEC_TMPVAR_CV) \
+ _(2031, ZEND_PRE_INC_OBJ_SPEC_VAR_CONST) \
+ _(2032, ZEND_PRE_INC_OBJ_SPEC_VAR_TMPVAR) \
+ _(2033, ZEND_PRE_INC_OBJ_SPEC_VAR_TMPVAR) \
+ _(2035, ZEND_PRE_INC_OBJ_SPEC_VAR_CV) \
_(2036, ZEND_PRE_INC_OBJ_SPEC_UNUSED_CONST) \
_(2037, ZEND_PRE_INC_OBJ_SPEC_UNUSED_TMPVAR) \
_(2038, ZEND_PRE_INC_OBJ_SPEC_UNUSED_TMPVAR) \