aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/Python
diff options
context:
space:
mode:
Diffstat (limited to 'Python')
-rw-r--r--Python/errors.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/Python/errors.c b/Python/errors.c
index 433253b8f9a..ad6b7dbef07 100644
--- a/Python/errors.c
+++ b/Python/errors.c
@@ -257,13 +257,14 @@ void
_PyErr_SetKeyError(PyObject *arg)
{
PyThreadState *tstate = _PyThreadState_GET();
- PyObject *tup = PyTuple_Pack(1, arg);
- if (!tup) {
+ PyObject *exc = PyObject_CallOneArg(PyExc_KeyError, arg);
+ if (!exc) {
/* caller will expect error to be set anyway */
return;
}
- _PyErr_SetObject(tstate, PyExc_KeyError, tup);
- Py_DECREF(tup);
+
+ _PyErr_SetObject(tstate, (PyObject*)Py_TYPE(exc), exc);
+ Py_DECREF(exc);
}
void