]> granicus.if.org Git - php/commitdiff
don't mark zvals as rotts if they are already processed by GC
authorDmitry Stogov <dmitry@zend.com>
Fri, 21 Mar 2014 17:36:46 +0000 (21:36 +0400)
committerDmitry Stogov <dmitry@zend.com>
Fri, 21 Mar 2014 17:36:46 +0000 (21:36 +0400)
Zend/zend_gc.c

index e79e604e54847e4f7116722fd03c3e9af8faae06..54fd532fc7787d30ce3d72a61813a43ea1b9d02f 100644 (file)
@@ -146,7 +146,7 @@ ZEND_API void gc_possible_root(zend_refcounted *ref TSRMLS_DC)
 
        GC_BENCH_INC(zval_possible_root);
 
-       if (GC_GET_COLOR(ref->u.v.gc_info) != GC_PURPLE) {
+       if (GC_GET_COLOR(ref->u.v.gc_info) == GC_BLACK) {
                GC_SET_PURPLE(ref->u.v.gc_info);
 
                if (!GC_ADDRESS(ref->u.v.gc_info)) {