mirror of
https://github.com/php/php-src.git
synced 2024-09-22 10:27:25 +00:00
MFB: Fixed bug #33282 (Re-assignment by reference does not clear the is_ref
flag)
This commit is contained in:
parent
7ebb315ea9
commit
d5c7a2d9c6
19
Zend/tests/bug33282.phpt
Normal file
19
Zend/tests/bug33282.phpt
Normal file
@ -0,0 +1,19 @@
|
||||
--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)
|
||||
}
|
@ -434,11 +434,7 @@ static void zend_assign_to_variable_reference(zval **variable_ptr_ptr, zval **va
|
||||
*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);
|
||||
|
Loading…
Reference in New Issue
Block a user