Unknown whether this fixes it.
- stringobject.c, PyString_FromFormatV: don't assume that va_list is of
a type that can be copied via an initializer.
- errors.c, PyErr_Format: add a va_end() to balance the va_start().
PyObject *
PyString_FromFormatV(const char *format, va_list vargs)
{
- va_list count = vargs;
+ va_list count;
int n = 0;
const char* f;
char *s;
PyObject* string;
+#ifdef VA_LIST_IS_ARRAY
+ memcpy(count, vargs, sizeof(va_list));
+#else
+ count = vargs;
+#endif
/* step 1: figure out how large a buffer we need */
for (f = format; *f; f++) {
if (*f == '%') {
string = PyString_FromFormatV(format, vargs);
PyErr_SetObject(exception, string);
Py_XDECREF(string);
-
+ va_end(vargs);
return NULL;
}