summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Objects/object.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/Objects/object.c b/Objects/object.c
index e44edca..150caac 100644
--- a/Objects/object.c
+++ b/Objects/object.c
@@ -1656,12 +1656,15 @@ merge_class_dict(PyObject* dict, PyObject* aclass)
PyErr_Clear();
else {
for (i = 0; i < n; i++) {
+ int status;
PyObject *base = PySequence_GetItem(bases, i);
if (base == NULL) {
Py_DECREF(bases);
return -1;
}
- if (merge_class_dict(dict, base) < 0) {
+ status = merge_class_dict(dict, base);
+ Py_DECREF(base);
+ if (status < 0) {
Py_DECREF(bases);
return -1;
}