diff options
author | Dmitry Stogov <dmitry@zend.com> | 2017-06-15 22:50:04 +0300 |
---|---|---|
committer | Dmitry Stogov <dmitry@zend.com> | 2017-06-15 22:50:04 +0300 |
commit | 8bb29704ea34749d1560f424c4726f4162d1adee (patch) | |
tree | 8e9195a3be9001456b495f7a8248c689d64030f5 /Zend/zend_execute.c | |
parent | 76db01d9ff213aec3f5f0e532c67c6ea8c4b5751 (diff) | |
download | php-git-8bb29704ea34749d1560f424c4726f4162d1adee.tar.gz |
Refactored API for constant array element propagation
Diffstat (limited to 'Zend/zend_execute.c')
-rw-r--r-- | Zend/zend_execute.c | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c index a1cfcd3650..1174c13401 100644 --- a/Zend/zend_execute.c +++ b/Zend/zend_execute.c @@ -1827,17 +1827,15 @@ static zend_never_inline void zend_fetch_dimension_address_read_LIST(zval *resul zend_fetch_dimension_address_read(result, container, dim, IS_TMP_VAR, BP_VAR_R, 0, 0); } -ZEND_API void zend_fetch_dimension_by_zval(zval *result, zval *container, zval *dim) +ZEND_API void zend_fetch_dimension_const(zval *result, zval *container, zval *dim, int type) { - zend_fetch_dimension_address_read_R(result, container, dim, IS_TMP_VAR); -} - -ZEND_API void zend_fetch_dimension_by_zval_is(zval *result, zval *container, zval *dim, int dim_type) -{ - zend_fetch_dimension_address_read(result, container, dim, dim_type, BP_VAR_IS, 1, 0); + if (type == BP_VAR_IS) { + zend_fetch_dimension_address_read_IS(result, container, dim, IS_CONST); + } else { + zend_fetch_dimension_address_read_R(result, container, dim, IS_CONST); + } } - static zend_always_inline void zend_fetch_property_address(zval *result, zval *container, uint32_t container_op_type, zval *prop_ptr, uint32_t prop_op_type, void **cache_slot, int type) { if (container_op_type != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) { |