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 */
--- 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;
- /* va_list may be an array (of 1 item) on some platforms (ex: AMD64).
Copy it to be able to pass a reference to a subfunction. */[](#l3.8)
- Py_VA_COPY(vargs2, vargs);
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;
Py_VA_COPY(lva, va);[](#l4.7)
return vgetargs1(args, format, &lva, 0); } @@ -152,7 +152,7 @@ int { va_list lva;
Py_VA_COPY(lva, va);[](#l4.16)
return vgetargs1(args, format, &lva, FLAG_SIZE_T); } @@ -1402,7 +1402,7 @@ PyArg_VaParseTupleAndKeywords(PyObject * return 0; }
Py_VA_COPY(lva, va);[](#l4.25)
retval = vgetargskeywords(args, keywords, format, kwlist, &lva, 0); return retval; @@ -1426,7 +1426,7 @@ int return 0; }
Py_VA_COPY(lva, va);[](#l4.34)
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;
--- 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;
- ;
- return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - -else - - -$as_echo "#define VA_LIST_IS_ARRAY 1" >>confdefs.h -
- va_list_is_array=yes - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ asecho"as_echo "asecho"as_me:${as_lineno-$LINENO}: result: $va_list_is_array" >&5 -$as_echo "$va_list_is_array" >&6; } -
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;]])],[],[
- AC_DEFINE(VA_LIST_IS_ARRAY, 1, [Define if a va_list is an array of some kind])
- va_list_is_array=yes -]) -AC_MSG_RESULT($va_list_is_array) -
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