mirror of
https://github.com/php/php-src.git
synced 2025-08-16 22:18:50 +02:00
Merge branch 'PHP-7.3' into PHP-7.4
This commit is contained in:
commit
fa8565a0f1
2 changed files with 32 additions and 0 deletions
28
Zend/tests/gc_042.phpt
Normal file
28
Zend/tests/gc_042.phpt
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
--TEST--
|
||||||
|
Object properties HT may need to be removed from nested data
|
||||||
|
--FILE--
|
||||||
|
<?php
|
||||||
|
|
||||||
|
class Test {
|
||||||
|
public function __destruct() {
|
||||||
|
$GLOBALS['x'] = $this;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$t = new Test;
|
||||||
|
$t->x = new stdClass;
|
||||||
|
$t->x->t = $t;
|
||||||
|
$a = (array) $t->x;
|
||||||
|
unset($t, $a);
|
||||||
|
gc_collect_cycles();
|
||||||
|
var_dump($x);
|
||||||
|
|
||||||
|
?>
|
||||||
|
--EXPECT--
|
||||||
|
object(Test)#1 (1) {
|
||||||
|
["x"]=>
|
||||||
|
object(stdClass)#2 (1) {
|
||||||
|
["t"]=>
|
||||||
|
*RECURSION*
|
||||||
|
}
|
||||||
|
}
|
|
@ -1379,6 +1379,10 @@ tail_call:
|
||||||
ref = Z_COUNTED_P(zv);
|
ref = Z_COUNTED_P(zv);
|
||||||
goto tail_call;
|
goto tail_call;
|
||||||
}
|
}
|
||||||
|
if (GC_REF_ADDRESS(ht) != 0 && GC_REF_CHECK_COLOR(ht, GC_BLACK)) {
|
||||||
|
GC_TRACE_REF(ht, "removing from buffer");
|
||||||
|
GC_REMOVE_FROM_BUFFER(ht);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue