# Original patch by Matt Wilmas
--- /dev/null
+--TEST--
+Bug #33282 (Re-assignment by reference does not clear the is_ref flag)
+--FILE--
+<?php
+ $a = array(1, 2, 3);
+ $r = &$a[0];
+ $r = &$a[1];
+ $r = &$a[2];
+ var_dump($a);
+?>
+--EXPECT--
+array(3) {
+ [0]=>
+ int(1)
+ [1]=>
+ int(2)
+ [2]=>
+ &int(3)
+}
*variable_ptr_ptr = value_ptr;
value_ptr->refcount++;
- variable_ptr->refcount--;
- if (variable_ptr->refcount==0) {
- zendi_zval_dtor(*variable_ptr);
- FREE_ZVAL(variable_ptr);
- }
+ zval_ptr_dtor(&variable_ptr);
} else if (!variable_ptr->is_ref) {
if (variable_ptr_ptr == value_ptr_ptr) {
SEPARATE_ZVAL(variable_ptr_ptr);