summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Python/exceptions.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/Python/exceptions.c b/Python/exceptions.c
index c8c7b69..560aeb8 100644
--- a/Python/exceptions.c
+++ b/Python/exceptions.c
@@ -285,16 +285,22 @@ BaseException__unicode__(PyObject *self, PyObject *args)
}
else if (args_len == 1) {
PyObject *temp = PySequence_GetItem(args, 0);
+ PyObject *unicode_obj;
+
if (!temp) {
Py_DECREF(args);
return NULL;
}
Py_DECREF(args);
- return PyObject_Unicode(temp);
+ unicode_obj = PyObject_Unicode(temp);
+ Py_DECREF(temp);
+ return unicode_obj;
}
else {
+ PyObject *unicode_obj = PyObject_Unicode(args);
+
Py_DECREF(args);
- return PyObject_Unicode(args);
+ return unicode_obj;
}
}
#endif /* Py_USING_UNICODE */