Factor-out the common code for setting a KeyError.

This commit is contained in:
Raymond Hettinger 2013-09-02 15:59:26 -07:00
parent 7f5c22c022
commit 69492dab07
4 changed files with 20 additions and 33 deletions

View file

@ -117,6 +117,20 @@ PyErr_SetObject(PyObject *exception, PyObject *value)
PyErr_Restore(exception, value, tb);
}
/* Set a key error with the specified argument, wrapping it in a
* tuple automatically so that tuple keys are not unpacked as the
* exception arguments. */
void
_PyErr_SetKeyError(PyObject *arg)
{
PyObject *tup;
tup = PyTuple_Pack(1, arg);
if (!tup)
return; /* caller will expect error to be set anyway */
PyErr_SetObject(PyExc_KeyError, tup);
Py_DECREF(tup);
}
void
PyErr_SetNone(PyObject *exception)
{