summaryrefslogtreecommitdiffstats
path: root/Python
diff options
context:
space:
mode:
Diffstat (limited to 'Python')
-rw-r--r--Python/exceptions.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/Python/exceptions.c b/Python/exceptions.c
index c32e15c..f766ba5 100644
--- a/Python/exceptions.c
+++ b/Python/exceptions.c
@@ -231,7 +231,6 @@ static PyObject*
Exception__str__(PyObject* self, PyObject* args)
{
PyObject* out;
- PyObject* tmp;
if (!PyArg_ParseTuple(args, "O", &self))
return NULL;
@@ -245,11 +244,16 @@ Exception__str__(PyObject* self, PyObject* args)
out = PyString_FromString("");
break;
case 1:
- if (!(tmp = PySequence_GetItem(args, 0)))
- out = NULL;
- else
+ {
+ PyObject* tmp = PySequence_GetItem(args, 0);
+ if (tmp) {
out = PyObject_Str(tmp);
+ Py_DECREF(tmp);
+ }
+ else
+ out = NULL;
break;
+ }
default:
out = PyObject_Str(args);
break;