Patch #554716: Use __va_copy where available.
This commit is contained in:
parent
09c35f78fe
commit
75d2d94e0f
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue