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