Skip to content

Commit 30f1be7

Browse files
committed
Turn off bogus warnings with overloaded dimensions and += (and friends)
1 parent c6a2a19 commit 30f1be7

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

Zend/zend_execute.c

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -932,8 +932,14 @@ static void zend_fetch_dimension_address(znode *result, znode *op1, znode *op2,
932932
zval *overloaded_result = Z_OBJ_HT_P(container)->read_dimension(container, dim, type TSRMLS_CC);
933933

934934
if (overloaded_result) {
935-
if (type == BP_VAR_RW && !overloaded_result->is_ref) {
936-
zend_error(E_ERROR, "Objects used as arrays in post/pre increment/decrement must return values by reference");
935+
switch (type) {
936+
case BP_VAR_RW:
937+
case BP_VAR_W:
938+
if (overloaded_result->type != IS_OBJECT
939+
&& !overloaded_result->is_ref) {
940+
zend_error(E_ERROR, "Objects used as arrays in post/pre increment/decrement must return values by reference");
941+
}
942+
break;
937943
}
938944

939945
*retval = &overloaded_result;

0 commit comments

Comments
 (0)