Issue #18408: Fix dict_repr(), don't call PyObject_Repr() with an exception set

PyObject_Repr() can removes the current exception. For example, module_repr()
calls PyErr_Clear() if calling loader.module_repr(mod) failed.
This commit is contained in:
Victor Stinner 2013-07-18 01:00:45 +02:00
parent 4755beac3c
commit f97dfd7b59

View file

@ -1443,6 +1443,9 @@ dict_repr(PyDictObject *mp)
Py_INCREF(value);
s = PyObject_Repr(key);
PyUnicode_Append(&s, colon);
if (s == NULL)
goto Done;
PyUnicode_AppendAndDel(&s, PyObject_Repr(value));
Py_DECREF(key);
Py_DECREF(value);