summaryrefslogtreecommitdiff
path: root/Zend/zend_execute.c
diff options
context:
space:
mode:
authorZeev Suraski <zeev@php.net>2003-07-22 13:49:33 +0000
committerZeev Suraski <zeev@php.net>2003-07-22 13:49:33 +0000
commit6a50660cfe72ec200377c2537c7ec083f7172eb2 (patch)
treec9e206a18a2facb9ee7620e22942a66f3445c59a /Zend/zend_execute.c
parentccff4687742d3326e4e00f5dac723c4b24ca3d9d (diff)
downloadphp-git-6a50660cfe72ec200377c2537c7ec083f7172eb2.tar.gz
Fix isset()/empty() for non-trivial object elements
(API change - read_property now accepts an extra element) Fixes bug #24436
Diffstat (limited to 'Zend/zend_execute.c')
-rw-r--r--Zend/zend_execute.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c
index 42c6055de8..53d506f9bd 100644
--- a/Zend/zend_execute.c
+++ b/Zend/zend_execute.c
@@ -991,7 +991,7 @@ static void zend_fetch_property_address_read(znode *result, znode *op1, znode *o
}
/* here we are sure we are dealing with an object */
- *retval = Z_OBJ_HT_P(container)->read_property(container, offset TSRMLS_CC);
+ *retval = Z_OBJ_HT_P(container)->read_property(container, offset, (zend_bool) ((type==BP_VAR_IS) ? 1 : 0) TSRMLS_CC);
if (offset == &tmp) {
zval_dtor(offset);
}
@@ -1037,7 +1037,7 @@ static void zend_pre_incdec_property(znode *result, znode *op1, znode *op2, temp
}
if (!have_get_ptr) {
- zval *z = Z_OBJ_HT_P(object)->read_property(object, property TSRMLS_CC);
+ zval *z = Z_OBJ_HT_P(object)->read_property(object, property, 0 TSRMLS_CC);
SEPARATE_ZVAL_IF_NOT_REF(&z);
incdec_op(z);
Z_OBJ_HT_P(object)->write_property(object, property, z TSRMLS_CC);
@@ -1084,7 +1084,7 @@ static void zend_post_incdec_property(znode *result, znode *op1, znode *op2, tem
}
if (!have_get_ptr) {
- zval *z = Z_OBJ_HT_P(object)->read_property(object, property TSRMLS_CC);
+ zval *z = Z_OBJ_HT_P(object)->read_property(object, property, 0 TSRMLS_CC);
SEPARATE_ZVAL_IF_NOT_REF(&z);
*retval = *z;
zendi_zval_copy_ctor(*retval);
@@ -1473,7 +1473,7 @@ static inline int zend_binary_assign_op_obj_helper(int (*binary_op)(zval *result
}
if (!have_get_ptr) {
- zval *z = Z_OBJ_HT_P(object)->read_property(object, property TSRMLS_CC);
+ zval *z = Z_OBJ_HT_P(object)->read_property(object, property, 0 TSRMLS_CC);
SEPARATE_ZVAL_IF_NOT_REF(&z);
binary_op(z, z, value TSRMLS_CC);
Z_OBJ_HT_P(object)->write_property(object, property, z TSRMLS_CC);