]> granicus.if.org Git - php/commitdiff
Fixed destruction of circular garbage
authorDmitry Stogov <dmitry@zend.com>
Thu, 22 Jan 2015 11:24:27 +0000 (14:24 +0300)
committerDmitry Stogov <dmitry@zend.com>
Thu, 22 Jan 2015 11:24:27 +0000 (14:24 +0300)
Zend/zend_gc.c

index 2c3ea15320185bb1aaa624ace7606d1ae4c54120..da547543e34354b3c3bcecb0377efdaab3532d20 100644 (file)
@@ -137,6 +137,11 @@ ZEND_API void gc_init(void)
 
 ZEND_API void gc_possible_root(zend_refcounted *ref)
 {
+       if (GC_TYPE(ref) == IS_NULL) {
+               return;
+       }
+
+       ZEND_ASSERT(GC_TYPE(ref) == IS_ARRAY || GC_TYPE(ref) == IS_OBJECT);
        GC_BENCH_INC(zval_possible_root);
 
        if (EXPECTED(GC_GET_COLOR(GC_INFO(ref)) == GC_BLACK)) {