Issue #20437: Fixed 43 potential bugs when deleting objects references.
diff --git a/Modules/_elementtree.c b/Modules/_elementtree.c
index ae07ca3..3e9f9df 100644
--- a/Modules/_elementtree.c
+++ b/Modules/_elementtree.c
@@ -2739,10 +2739,10 @@
target->events = events;
/* clear out existing events */
- Py_XDECREF(target->start_event_obj); target->start_event_obj = NULL;
- Py_XDECREF(target->end_event_obj); target->end_event_obj = NULL;
- Py_XDECREF(target->start_ns_event_obj); target->start_ns_event_obj = NULL;
- Py_XDECREF(target->end_ns_event_obj); target->end_ns_event_obj = NULL;
+ Py_CLEAR(target->start_event_obj);
+ Py_CLEAR(target->end_event_obj);
+ Py_CLEAR(target->start_ns_event_obj);
+ Py_CLEAR(target->end_ns_event_obj);
if (event_set == Py_None) {
/* default is "end" only */