summaryrefslogtreecommitdiff
path: root/Python/modsupport.c
diff options
context:
space:
mode:
authorSteve Dower <steve.dower@microsoft.com>2016-12-03 11:24:02 -0800
committerSteve Dower <steve.dower@microsoft.com>2016-12-03 11:24:02 -0800
commit9ca70643e30ef19ceb39644dde496b7dfc7fa6e6 (patch)
tree9dbef5e103e88ce6c36477306f285c16813e0866 /Python/modsupport.c
parente724fe060b189a4879fd9713a24bbfe6c9eb008e (diff)
parent43ebbf7db2d3d3297e96693fd91ac8a654631438 (diff)
downloadcpython-9ca70643e30ef19ceb39644dde496b7dfc7fa6e6.tar.gz
Issue #28846: Various installer fixes
Diffstat (limited to 'Python/modsupport.c')
-rw-r--r--Python/modsupport.c25
1 files changed, 14 insertions, 11 deletions
diff --git a/Python/modsupport.c b/Python/modsupport.c
index 0d093711f5..aabee8fa59 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));
+ 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));
-#endif
+ return PyLong_FromUnsignedLongLong((long long)va_arg(*p_va, unsigned long long));
+
case 'u':
{
PyObject *v;
@@ -318,7 +317,7 @@ do_mkvalue(const char **p_format, va_list *p_va, int flags)
case 'U': /* XXX deprecated alias */
{
PyObject *v;
- char *str = va_arg(*p_va, char *);
+ const char *str = va_arg(*p_va, const char *);
Py_ssize_t n;
if (**p_format == '#') {
++*p_format;
@@ -351,7 +350,7 @@ do_mkvalue(const char **p_format, va_list *p_va, int flags)
case 'y':
{
PyObject *v;
- char *str = va_arg(*p_va, char *);
+ const char *str = va_arg(*p_va, const char *);
Py_ssize_t n;
if (**p_format == '#') {
++*p_format;
@@ -468,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;
-
- Py_VA_COPY(lva, va);
+ PyObject *retval;
if (n < 0)
return NULL;
@@ -477,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;
}