@@ -827,6 +827,7 @@ static void gc_mark_grey(zend_refcounted *ref, gc_stack *stack)
827
827
while (zv != end ) {
828
828
if (Z_REFCOUNTED_P (zv )) {
829
829
ref = Z_COUNTED_P (zv );
830
+ ZEND_ASSERT (GC_REFCOUNT (ref ) > 0 );
830
831
GC_DELREF (ref );
831
832
if (!GC_REF_CHECK_COLOR (ref , GC_GREY )) {
832
833
GC_REF_SET_COLOR (ref , GC_GREY );
@@ -837,6 +838,7 @@ static void gc_mark_grey(zend_refcounted *ref, gc_stack *stack)
837
838
}
838
839
if (EXPECTED (!ht )) {
839
840
ref = Z_COUNTED_P (zv );
841
+ ZEND_ASSERT (GC_REFCOUNT (ref ) > 0 );
840
842
GC_DELREF (ref );
841
843
if (!GC_REF_CHECK_COLOR (ref , GC_GREY )) {
842
844
GC_REF_SET_COLOR (ref , GC_GREY );
@@ -857,6 +859,7 @@ static void gc_mark_grey(zend_refcounted *ref, gc_stack *stack)
857
859
} else if (GC_TYPE (ref ) == IS_REFERENCE ) {
858
860
if (Z_REFCOUNTED (((zend_reference * )ref )-> val )) {
859
861
ref = Z_COUNTED (((zend_reference * )ref )-> val );
862
+ ZEND_ASSERT (GC_REFCOUNT (ref ) > 0 );
860
863
GC_DELREF (ref );
861
864
if (!GC_REF_CHECK_COLOR (ref , GC_GREY )) {
862
865
GC_REF_SET_COLOR (ref , GC_GREY );
@@ -889,6 +892,7 @@ static void gc_mark_grey(zend_refcounted *ref, gc_stack *stack)
889
892
}
890
893
if (Z_REFCOUNTED_P (zv )) {
891
894
ref = Z_COUNTED_P (zv );
895
+ ZEND_ASSERT (GC_REFCOUNT (ref ) > 0 );
892
896
GC_DELREF (ref );
893
897
if (!GC_REF_CHECK_COLOR (ref , GC_GREY )) {
894
898
GC_REF_SET_COLOR (ref , GC_GREY );
@@ -902,6 +906,7 @@ static void gc_mark_grey(zend_refcounted *ref, gc_stack *stack)
902
906
zv = Z_INDIRECT_P (zv );
903
907
}
904
908
ref = Z_COUNTED_P (zv );
909
+ ZEND_ASSERT (GC_REFCOUNT (ref ) > 0 );
905
910
GC_DELREF (ref );
906
911
if (!GC_REF_CHECK_COLOR (ref , GC_GREY )) {
907
912
GC_REF_SET_COLOR (ref , GC_GREY );
0 commit comments