mirror of
https://github.com/php/php-src.git
synced 2024-09-22 10:27:25 +00:00
Better fix for #47341
This commit is contained in:
parent
6e808e2fe7
commit
c05dfd5605
@ -51,8 +51,8 @@ static void gc_globals_ctor_ex(zend_gc_globals *gc_globals TSRMLS_DC)
|
|||||||
|
|
||||||
gc_globals->buf = NULL;
|
gc_globals->buf = NULL;
|
||||||
|
|
||||||
gc_globals->roots.next = NULL;
|
gc_globals->roots.next = &gc_globals->roots;
|
||||||
gc_globals->roots.prev = NULL;
|
gc_globals->roots.prev = &gc_globals->roots;
|
||||||
gc_globals->unused = NULL;
|
gc_globals->unused = NULL;
|
||||||
gc_globals->zval_to_free = NULL;
|
gc_globals->zval_to_free = NULL;
|
||||||
gc_globals->free_list = NULL;
|
gc_globals->free_list = NULL;
|
||||||
@ -109,10 +109,10 @@ ZEND_API void gc_reset(TSRMLS_D)
|
|||||||
GC_G(zobj_marked_grey) = 0;
|
GC_G(zobj_marked_grey) = 0;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (GC_G(buf)) {
|
GC_G(roots).next = &GC_G(roots);
|
||||||
GC_G(roots).next = &GC_G(roots);
|
GC_G(roots).prev = &GC_G(roots);
|
||||||
GC_G(roots).prev = &GC_G(roots);
|
|
||||||
|
|
||||||
|
if (GC_G(buf)) {
|
||||||
GC_G(unused) = NULL;
|
GC_G(unused) = NULL;
|
||||||
GC_G(first_unused) = GC_G(buf);
|
GC_G(first_unused) = GC_G(buf);
|
||||||
|
|
||||||
@ -527,7 +527,7 @@ ZEND_API int gc_collect_cycles(TSRMLS_D)
|
|||||||
{
|
{
|
||||||
int count = 0;
|
int count = 0;
|
||||||
|
|
||||||
if (GC_G(roots).next != &GC_G(roots) && GC_G(roots).next) {
|
if (GC_G(roots).next != &GC_G(roots)) {
|
||||||
zval_gc_info *p, *q, *orig_free_list, *orig_next_to_free;
|
zval_gc_info *p, *q, *orig_free_list, *orig_next_to_free;
|
||||||
|
|
||||||
if (GC_G(gc_active)) {
|
if (GC_G(gc_active)) {
|
||||||
|
Loading…
Reference in New Issue
Block a user