Skip to content

Commit 39de85b

Browse files
authored
handle errors from tp_clear in tp_dealloc
1 parent 3221127 commit 39de85b

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

Modules/_curses_panel.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -438,6 +438,7 @@ PyCursesPanel_Clear(PyObject *op)
438438
Py_DECREF(extra);
439439
if (set_panel_userptr(self->pan, NULL) == ERR) {
440440
curses_panel_panel_set_error(self, "set_panel_userptr", NULL);
441+
return -1;
441442
}
442443
}
443444
// self->wo should not be cleared because an associated WINDOW may exist
@@ -451,7 +452,9 @@ PyCursesPanel_Dealloc(PyObject *self)
451452
PyObject_GC_UnTrack(self);
452453

453454
PyCursesPanelObject *po = _PyCursesPanelObject_CAST(self);
454-
(void)PyCursesPanel_Clear(self);
455+
if (PyCursesPanel_Clear(self) < 0) {
456+
PyErr_FormatUnraisable("Exception ignored in PyCursesPanel_Dealloc()");
457+
}
455458
if (del_panel(po->pan) == ERR && !PyErr_Occurred()) {
456459
curses_panel_panel_set_error(po, "del_panel", "__del__");
457460
PyErr_FormatUnraisable("Exception ignored in PyCursesPanel_Dealloc()");

0 commit comments

Comments
 (0)