@@ -823,6 +823,7 @@ static void gc_mark_grey(zend_refcounted *ref, gc_stack *stack)
823
823
while (zv != end ) {
824
824
if (Z_REFCOUNTED_P (zv )) {
825
825
ref = Z_COUNTED_P (zv );
826
+ ZEND_ASSERT (GC_REFCOUNT (ref ) > 0 );
826
827
GC_DELREF (ref );
827
828
if (!GC_REF_CHECK_COLOR (ref , GC_GREY )) {
828
829
GC_REF_SET_COLOR (ref , GC_GREY );
@@ -833,6 +834,7 @@ static void gc_mark_grey(zend_refcounted *ref, gc_stack *stack)
833
834
}
834
835
if (EXPECTED (!ht )) {
835
836
ref = Z_COUNTED_P (zv );
837
+ ZEND_ASSERT (GC_REFCOUNT (ref ) > 0 );
836
838
GC_DELREF (ref );
837
839
if (!GC_REF_CHECK_COLOR (ref , GC_GREY )) {
838
840
GC_REF_SET_COLOR (ref , GC_GREY );
@@ -853,6 +855,7 @@ static void gc_mark_grey(zend_refcounted *ref, gc_stack *stack)
853
855
} else if (GC_TYPE (ref ) == IS_REFERENCE ) {
854
856
if (Z_REFCOUNTED (((zend_reference * )ref )-> val )) {
855
857
ref = Z_COUNTED (((zend_reference * )ref )-> val );
858
+ ZEND_ASSERT (GC_REFCOUNT (ref ) > 0 );
856
859
GC_DELREF (ref );
857
860
if (!GC_REF_CHECK_COLOR (ref , GC_GREY )) {
858
861
GC_REF_SET_COLOR (ref , GC_GREY );
@@ -885,6 +888,7 @@ static void gc_mark_grey(zend_refcounted *ref, gc_stack *stack)
885
888
}
886
889
if (Z_REFCOUNTED_P (zv )) {
887
890
ref = Z_COUNTED_P (zv );
891
+ ZEND_ASSERT (GC_REFCOUNT (ref ) > 0 );
888
892
GC_DELREF (ref );
889
893
if (!GC_REF_CHECK_COLOR (ref , GC_GREY )) {
890
894
GC_REF_SET_COLOR (ref , GC_GREY );
@@ -898,6 +902,7 @@ static void gc_mark_grey(zend_refcounted *ref, gc_stack *stack)
898
902
zv = Z_INDIRECT_P (zv );
899
903
}
900
904
ref = Z_COUNTED_P (zv );
905
+ ZEND_ASSERT (GC_REFCOUNT (ref ) > 0 );
901
906
GC_DELREF (ref );
902
907
if (!GC_REF_CHECK_COLOR (ref , GC_GREY )) {
903
908
GC_REF_SET_COLOR (ref , GC_GREY );
0 commit comments