From: Martin v. Löwis Date: Sun, 28 Jul 2002 10:21:31 +0000 (+0000) Subject: Patch #554716: Use __va_copy where available. X-Git-Tag: v2.2.2b1~256 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=59b5b4720b9bb11e0dcbb4cb255c6cc571df0a5c;p=thirdparty%2FPython%2Fcpython.git Patch #554716: Use __va_copy where available. --- diff --git a/Objects/abstract.c b/Objects/abstract.c index 0556c5a2a54d..a9be8b2f9c53 100644 --- a/Objects/abstract.c +++ b/Objects/abstract.c @@ -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) diff --git a/Objects/stringobject.c b/Objects/stringobject.c index dd74569fda47..b73eaa8bfaf7 100644 --- a/Objects/stringobject.c +++ b/Objects/stringobject.c @@ -173,8 +173,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++) { diff --git a/Python/getargs.c b/Python/getargs.c index 9df2a2e56672..08b79e474a52 100644 --- a/Python/getargs.c +++ b/Python/getargs.c @@ -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); diff --git a/Python/modsupport.c b/Python/modsupport.c index cff9a02aa4c0..437469b10a6a 100644 --- a/Python/modsupport.c +++ b/Python/modsupport.c @@ -410,8 +410,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)