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) ...@@ -1792,8 +1792,12 @@ objargs_mktuple(va_list va)
#ifdef VA_LIST_IS_ARRAY #ifdef VA_LIST_IS_ARRAY
memcpy(countva, va, sizeof(va_list)); memcpy(countva, va, sizeof(va_list));
#else
#ifdef __va_copy
__va_copy(countva, va);
#else #else
countva = va; countva = va;
#endif
#endif #endif
while (((PyObject *)va_arg(countva, PyObject *)) != NULL) while (((PyObject *)va_arg(countva, PyObject *)) != NULL)
......
...@@ -155,8 +155,12 @@ PyString_FromFormatV(const char *format, va_list vargs) ...@@ -155,8 +155,12 @@ PyString_FromFormatV(const char *format, va_list vargs)
#ifdef VA_LIST_IS_ARRAY #ifdef VA_LIST_IS_ARRAY
memcpy(count, vargs, sizeof(va_list)); memcpy(count, vargs, sizeof(va_list));
#else
#ifdef __va_copy
__va_copy(count, vargs);
#else #else
count = vargs; count = vargs;
#endif
#endif #endif
/* step 1: figure out how large a buffer we need */ /* step 1: figure out how large a buffer we need */
for (f = format; *f; f++) { for (f = format; *f; f++) {
......
...@@ -60,8 +60,12 @@ PyArg_VaParse(PyObject *args, char *format, va_list va) ...@@ -60,8 +60,12 @@ PyArg_VaParse(PyObject *args, char *format, va_list va)
#ifdef VA_LIST_IS_ARRAY #ifdef VA_LIST_IS_ARRAY
memcpy(lva, va, sizeof(va_list)); memcpy(lva, va, sizeof(va_list));
#else
#ifdef __va_copy
__va_copy(lva, va);
#else #else
lva = va; lva = va;
#endif
#endif #endif
return vgetargs1(args, format, &lva, 0); return vgetargs1(args, format, &lva, 0);
......
...@@ -417,8 +417,12 @@ Py_VaBuildValue(char *format, va_list va) ...@@ -417,8 +417,12 @@ Py_VaBuildValue(char *format, va_list va)
#ifdef VA_LIST_IS_ARRAY #ifdef VA_LIST_IS_ARRAY
memcpy(lva, va, sizeof(va_list)); memcpy(lva, va, sizeof(va_list));
#else
#ifdef __va_copy
__va_copy(lva, va);
#else #else
lva = va; lva = va;
#endif
#endif #endif
if (n < 0) 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