mirror of
https://github.com/python/cpython.git
synced 2025-07-23 11:15:24 +00:00
Issue #18711: Add a new PyErr_FormatV
function, similar to PyErr_Format
but accepting a va_list
argument.
This commit is contained in:
parent
63860e5407
commit
0676a406bf
7 changed files with 39 additions and 10 deletions
|
@ -749,19 +749,11 @@ PyErr_BadInternalCall(void)
|
|||
#define PyErr_BadInternalCall() _PyErr_BadInternalCall(__FILE__, __LINE__)
|
||||
|
||||
|
||||
|
||||
PyObject *
|
||||
PyErr_Format(PyObject *exception, const char *format, ...)
|
||||
PyErr_FormatV(PyObject *exception, const char *format, va_list vargs)
|
||||
{
|
||||
va_list vargs;
|
||||
PyObject* string;
|
||||
|
||||
#ifdef HAVE_STDARG_PROTOTYPES
|
||||
va_start(vargs, format);
|
||||
#else
|
||||
va_start(vargs);
|
||||
#endif
|
||||
|
||||
#ifdef Py_DEBUG
|
||||
/* in debug mode, PyEval_EvalFrameEx() fails with an assertion error
|
||||
if an exception is set when it is called */
|
||||
|
@ -771,11 +763,24 @@ PyErr_Format(PyObject *exception, const char *format, ...)
|
|||
string = PyUnicode_FromFormatV(format, vargs);
|
||||
PyErr_SetObject(exception, string);
|
||||
Py_XDECREF(string);
|
||||
va_end(vargs);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
PyObject *
|
||||
PyErr_Format(PyObject *exception, const char *format, ...)
|
||||
{
|
||||
va_list vargs;
|
||||
#ifdef HAVE_STDARG_PROTOTYPES
|
||||
va_start(vargs, format);
|
||||
#else
|
||||
va_start(vargs);
|
||||
#endif
|
||||
PyErr_FormatV(exception, format, vargs);
|
||||
va_end(vargs);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
PyObject *
|
||||
PyErr_NewException(const char *name, PyObject *base, PyObject *dict)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue