cpython: 278b21d8e86e (original) (raw)

Mercurial > cpython

changeset 103977:278b21d8e86e 3.6

replace usage of Py_VA_COPY with the (C99) standard va_copy

Benjamin Peterson benjamin@python.org
date Tue, 20 Sep 2016 20:39:33 -0700
parents d31b4de433b7
children 73bcce122338 cc88969d55ba
files Include/pyport.h Objects/abstract.c Objects/unicodeobject.c Python/getargs.c Python/modsupport.c configure configure.ac pyconfig.h.in
diffstat 8 files changed, 11 insertions(+), 71 deletions(-)[+] [-] Include/pyport.h 10 Objects/abstract.c 2 Objects/unicodeobject.c 5 Python/getargs.c 12 Python/modsupport.c 2 configure 34 configure.ac 14 pyconfig.h.in 3

line wrap: on

line diff

--- a/Include/pyport.h +++ b/Include/pyport.h @@ -723,15 +723,7 @@ extern pid_t forkpty(int *, char , stru #define Py_ULL(x) Py_LL(x##U) #endif -#ifdef VA_LIST_IS_ARRAY -#define Py_VA_COPY(x, y) memcpy((x), (y), sizeof(va_list)) -#else -#ifdef __va_copy -#define Py_VA_COPY __va_copy -#else -#define Py_VA_COPY(x, y) (x) = (y) -#endif -#endif +#define Py_VA_COPY va_copy /

--- a/Objects/abstract.c +++ b/Objects/abstract.c @@ -2683,7 +2683,7 @@ objargs_mkstack(PyObject **small_stack, PyObject *stack; / Count the number of arguments */

n = 0; while (1) {

--- a/Objects/unicodeobject.c +++ b/Objects/unicodeobject.c @@ -2874,9 +2874,8 @@ PyUnicode_FromFormatV(const char *format writer.min_length = strlen(format) + 100; writer.overallocate = 1;

for (f = format; *f; ) { if (*f == '%') {

--- a/Python/getargs.c +++ b/Python/getargs.c @@ -142,7 +142,7 @@ PyArg_VaParse(PyObject *args, const char { va_list lva;

return vgetargs1(args, format, &lva, 0); } @@ -152,7 +152,7 @@ int { va_list lva;

return vgetargs1(args, format, &lva, FLAG_SIZE_T); } @@ -1402,7 +1402,7 @@ PyArg_VaParseTupleAndKeywords(PyObject * return 0; }

retval = vgetargskeywords(args, keywords, format, kwlist, &lva, 0); return retval; @@ -1426,7 +1426,7 @@ int return 0; }

retval = vgetargskeywords(args, keywords, format, kwlist, &lva, FLAG_SIZE_T); @@ -1531,7 +1531,7 @@ int return 0; }

retval = vgetargskeywordsfast(args, keywords, parser, &lva, 0); return retval; @@ -1552,7 +1552,7 @@ int return 0; }

retval = vgetargskeywordsfast(args, keywords, parser, &lva, FLAG_SIZE_T); return retval;

--- a/Python/modsupport.c +++ b/Python/modsupport.c @@ -468,7 +468,7 @@ va_build_value(const char *format, va_li int n = countformat(f, '\0'); va_list lva;

if (n < 0) return NULL;

--- a/configure +++ b/configure @@ -13539,40 +13539,6 @@ else fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -va_list_is_array=no -{ asecho"as_echo "asecho"as_me:${as_lineno-$LINENO}: checking whether va_list is an array" >&5 -$as_echo_n "checking whether va_list is an array... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#ifdef HAVE_STDARG_PROTOTYPES -#include <stdarg.h> -#else -#include <varargs.h> -#endif - -int -main () -{ -va_list list1, list2; list1 = list2;

sigh -- gethostbyname_r is a mess; it can have 3, 5 or 6 arguments :-(

--- a/configure.ac +++ b/configure.ac @@ -4038,20 +4038,6 @@ x.sa_len = 0;]])], [AC_MSG_RESULT(no)] ) -va_list_is_array=no -AC_MSG_CHECKING(whether va_list is an array) -AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ -#ifdef HAVE_STDARG_PROTOTYPES -#include <stdarg.h> -#else -#include <varargs.h> -#endif -]], [[va_list list1, list2; list1 = list2;]])],[],[

sigh -- gethostbyname_r is a mess; it can have 3, 5 or 6 arguments :-(

AH_TEMPLATE(HAVE_GETHOSTBYNAME_R, [Define this if you have some version of gethostbyname_r()])

--- a/pyconfig.h.in +++ b/pyconfig.h.in @@ -1361,9 +1361,6 @@ #endif -/* Define if a va_list is an array of some kind / -#undef VA_LIST_IS_ARRAY - / Define if you want SIGFPE handled (see Include/pyfpe.h). */ #undef WANT_SIGFPE_HANDLER