Commit 75d2d94e authored by Martin v. Löwis's avatar Martin v. Löwis

Patch #554716: Use __va_copy where available.

parent 09c35f78
......@@ -1792,8 +1792,12 @@ objargs_mktuple(va_list va)
#ifdef VA_LIST_IS_ARRAY
memcpy(countva, va, sizeof(va_list));
#else
#ifdef __va_copy
__va_copy(countva, va);
#else
countva = va;
#endif
#endif
while (((PyObject *)va_arg(countva, PyObject *)) != NULL)
......
......@@ -155,8 +155,12 @@ PyString_FromFormatV(const char *format, va_list vargs)
#ifdef VA_LIST_IS_ARRAY
memcpy(count, vargs, sizeof(va_list));
#else
#ifdef __va_copy
__va_copy(count, vargs);
#else
count = vargs;
#endif
#endif
/* step 1: figure out how large a buffer we need */
for (f = format; *f; f++) {
......
......@@ -60,8 +60,12 @@ PyArg_VaParse(PyObject *args, char *format, va_list va)
#ifdef VA_LIST_IS_ARRAY
memcpy(lva, va, sizeof(va_list));
#else
#ifdef __va_copy
__va_copy(lva, va);
#else
lva = va;
#endif
#endif
return vgetargs1(args, format, &lva, 0);
......
......@@ -417,8 +417,12 @@ Py_VaBuildValue(char *format, va_list va)
#ifdef VA_LIST_IS_ARRAY
memcpy(lva, va, sizeof(va_list));
#else
#ifdef __va_copy
__va_copy(lva, va);
#else
lva = va;
#endif
#endif
if (n < 0)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment