diff options
Diffstat (limited to 'Zend/zend_execute.c')
| -rw-r--r-- | Zend/zend_execute.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c index 2bd65b5de1..ea7cc801ca 100644 --- a/Zend/zend_execute.c +++ b/Zend/zend_execute.c @@ -1137,6 +1137,10 @@ static void zend_fetch_dimension_address(temp_variable *result, zval **container result->var.ptr_ptr = retval; AI_USE_PTR(result->var); PZVAL_LOCK(*result->var.ptr_ptr); + } else if ((*retval)->refcount == 0) { + /* Destroy unused result from offsetGet() magic method */ + (*retval)->refcount = 1; + zval_ptr_dtor(retval); } if (dim_is_tmp_var) { zval_ptr_dtor(&dim); |
