(original) (raw)
changeset: 84702:161de66cae49 user: Victor Stinner victor.stinner@gmail.com date: Thu Jul 18 01:00:45 2013 +0200 files: Objects/dictobject.c description: 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. diff -r b05a6a6eb525 -r 161de66cae49 Objects/dictobject.c --- a/Objects/dictobject.c Thu Jul 18 01:12:35 2013 +0200 +++ b/Objects/dictobject.c Thu Jul 18 01:00:45 2013 +0200 @@ -1443,6 +1443,9 @@ 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); /victor.stinner@gmail.com