patch 8.2.2538: crash when using Python list iterator
Problem: Crash when using Python list iterator.
Solution: Increment the list reference count. (closes #7886)
diff --git a/src/if_py_both.h b/src/if_py_both.h
index 2903b0b..9dbff1c 100644
--- a/src/if_py_both.h
+++ b/src/if_py_both.h
@@ -2815,6 +2815,7 @@
ListIterDestruct(listiterinfo_T *lii)
{
list_rem_watch(lii->list, &lii->lw);
+ list_unref(lii->list);
PyMem_Free(lii);
}
@@ -2850,6 +2851,7 @@
list_add_watch(l, &lii->lw);
lii->lw.lw_item = l->lv_first;
lii->list = l;
+ ++l->lv_refcount;
return IterNew(lii,
(destructorfun) ListIterDestruct, (nextfun) ListIterNext,