diff options
author | Nikita Popov <nikita.ppv@gmail.com> | 2020-03-18 14:52:22 +0100 |
---|---|---|
committer | Nikita Popov <nikita.ppv@gmail.com> | 2020-03-18 14:54:43 +0100 |
commit | df79277de35e096c654cf49b5e20960b3b8236c4 (patch) | |
tree | de58509991bd13f05148075d8b18794a680ff658 /Zend/zend_vm_handlers.h | |
parent | a5f136b8556cdd6ff3b96f976d0f3b6a25052171 (diff) | |
download | php-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.h | 136 |
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) \ |