summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Objects/exceptions.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/Objects/exceptions.c b/Objects/exceptions.c
index 53d8b66..2f0d5b6 100644
--- a/Objects/exceptions.c
+++ b/Objects/exceptions.c
@@ -2632,12 +2632,6 @@ _PyErr_TrySetFromCause(const char *format, ...)
PyObject *new_exc, *new_val, *new_tb;
va_list vargs;
-#ifdef HAVE_STDARG_PROTOTYPES
- va_start(vargs, format);
-#else
- va_start(vargs);
-#endif
-
PyErr_Fetch(&exc, &val, &tb);
caught_type = (PyTypeObject *) exc;
/* Ensure type info indicates no extra state is stored at the C level */
@@ -2690,7 +2684,14 @@ _PyErr_TrySetFromCause(const char *format, ...)
* types as well, but that's quite a bit trickier due to the extra
* state potentially stored on OSError instances.
*/
+
+#ifdef HAVE_STDARG_PROTOTYPES
+ va_start(vargs, format);
+#else
+ va_start(vargs);
+#endif
msg_prefix = PyUnicode_FromFormatV(format, vargs);
+ va_end(vargs);
if (msg_prefix == NULL)
return NULL;