From c15c4f1f39b2b3ca799c9a36b72a7c19a3c76e20 Mon Sep 17 00:00:00 2001 From: Tim Peters Date: Tue, 2 Oct 2001 21:32:07 +0000 Subject: SF bug [#467265] Compile errors on SuSe Linux on IBM/s390. 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(). --- Objects/stringobject.c | 7 ++++++- Python/errors.c | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/Objects/stringobject.c b/Objects/stringobject.c index cfa5f53..a43f129 100644 --- a/Objects/stringobject.c +++ b/Objects/stringobject.c @@ -150,12 +150,17 @@ PyString_FromString(const char *str) 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 == '%') { diff --git a/Python/errors.c b/Python/errors.c index c37d86b..2799cff 100644 --- a/Python/errors.c +++ b/Python/errors.c @@ -407,7 +407,7 @@ PyErr_Format(PyObject *exception, const char *format, ...) string = PyString_FromFormatV(format, vargs); PyErr_SetObject(exception, string); Py_XDECREF(string); - + va_end(vargs); return NULL; } -- cgit v0.12