From 907ccded8b6fa68f6f572ae5de6760595df0d5a1 Mon Sep 17 00:00:00 2001 From: Benjamin Peterson Date: Mon, 5 Sep 2016 17:44:18 -0700 Subject: require a long long data type (closes #27961) --- Python/modsupport.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'Python/modsupport.c') diff --git a/Python/modsupport.c b/Python/modsupport.c index dac18be746..4911f06e44 100644 --- a/Python/modsupport.c +++ b/Python/modsupport.c @@ -260,13 +260,12 @@ do_mkvalue(const char **p_format, va_list *p_va, int flags) return PyLong_FromUnsignedLong(n); } -#ifdef HAVE_LONG_LONG case 'L': return PyLong_FromLongLong((PY_LONG_LONG)va_arg(*p_va, PY_LONG_LONG)); case 'K': return PyLong_FromUnsignedLongLong((PY_LONG_LONG)va_arg(*p_va, unsigned PY_LONG_LONG)); -#endif + case 'u': { PyObject *v; -- cgit v1.2.1 From b10682a8d65eacac79b39a62ff45a15e0ac95f05 Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Mon, 5 Sep 2016 17:53:15 -0700 Subject: Avoid inefficient way to call functions without argument Don't pass "()" format to PyObject_CallXXX() to call a function without argument: pass NULL as the format string instead. It avoids to have to parse a string to produce 0 argument. --- Python/modsupport.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'Python/modsupport.c') diff --git a/Python/modsupport.c b/Python/modsupport.c index 4911f06e44..37c0ce7864 100644 --- a/Python/modsupport.c +++ b/Python/modsupport.c @@ -468,7 +468,7 @@ va_build_value(const char *format, va_list va, int flags) int n = countformat(f, '\0'); va_list lva; - Py_VA_COPY(lva, va); + Py_VA_COPY(lva, va); if (n < 0) return NULL; -- cgit v1.2.1 From 914b59533a094e815809f62441d02b560e23057b Mon Sep 17 00:00:00 2001 From: Benjamin Peterson Date: Tue, 6 Sep 2016 10:46:49 -0700 Subject: replace PY_LONG_LONG with long long --- Python/modsupport.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'Python/modsupport.c') diff --git a/Python/modsupport.c b/Python/modsupport.c index 37c0ce7864..f3aa91f2b9 100644 --- a/Python/modsupport.c +++ b/Python/modsupport.c @@ -261,10 +261,10 @@ do_mkvalue(const char **p_format, va_list *p_va, int flags) } case 'L': - return PyLong_FromLongLong((PY_LONG_LONG)va_arg(*p_va, PY_LONG_LONG)); + return PyLong_FromLongLong((long long)va_arg(*p_va, long long)); case 'K': - return PyLong_FromUnsignedLongLong((PY_LONG_LONG)va_arg(*p_va, unsigned PY_LONG_LONG)); + return PyLong_FromUnsignedLongLong((long long)va_arg(*p_va, unsigned long long)); case 'u': { -- cgit v1.2.1 From 31cb9f369965c4e70f7db1542686a0e845bb06db Mon Sep 17 00:00:00 2001 From: Benjamin Peterson Date: Tue, 20 Sep 2016 20:39:33 -0700 Subject: replace usage of Py_VA_COPY with the (C99) standard va_copy --- Python/modsupport.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'Python/modsupport.c') diff --git a/Python/modsupport.c b/Python/modsupport.c index f3aa91f2b9..bdaf8b22c5 100644 --- a/Python/modsupport.c +++ b/Python/modsupport.c @@ -468,7 +468,7 @@ va_build_value(const char *format, va_list va, int flags) int n = countformat(f, '\0'); va_list lva; - Py_VA_COPY(lva, va); + va_copy(lva, va); if (n < 0) return NULL; -- cgit v1.2.1 From dcf5141d78a919ed53f1cd8acd2542c95be2e5a6 Mon Sep 17 00:00:00 2001 From: Christian Heimes Date: Wed, 21 Sep 2016 11:37:27 +0200 Subject: va_end() all va_copy()ed va_lists. --- Python/modsupport.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'Python/modsupport.c') diff --git a/Python/modsupport.c b/Python/modsupport.c index bdaf8b22c5..aabee8fa59 100644 --- a/Python/modsupport.c +++ b/Python/modsupport.c @@ -467,8 +467,7 @@ va_build_value(const char *format, va_list va, int flags) const char *f = format; int n = countformat(f, '\0'); va_list lva; - - va_copy(lva, va); + PyObject *retval; if (n < 0) return NULL; @@ -476,9 +475,14 @@ va_build_value(const char *format, va_list va, int flags) Py_INCREF(Py_None); return Py_None; } - if (n == 1) - return do_mkvalue(&f, &lva, flags); - return do_mktuple(&f, &lva, '\0', n, flags); + va_copy(lva, va); + if (n == 1) { + retval = do_mkvalue(&f, &lva, flags); + } else { + retval = do_mktuple(&f, &lva, '\0', n, flags); + } + va_end(lva); + return retval; } -- cgit v1.2.1