changeset: 102772:73b00fb1dc9d parent: 102770:14fa255ea5ff user: Victor Stinner date: Fri Aug 19 18:01:41 2016 +0200 files: Objects/typeobject.c description: Cleanup call_method() and call_maybe() Issue #27128. Move va_start/va_end around Py_VaBuildValue(). diff -r 14fa255ea5ff -r 73b00fb1dc9d Objects/typeobject.c --- a/Objects/typeobject.c Fri Aug 19 17:58:30 2016 +0200 +++ b/Objects/typeobject.c Fri Aug 19 18:01:41 2016 +0200 @@ -1425,23 +1425,22 @@ { va_list va; PyObject *args, *func = 0, *retval; - va_start(va, format); func = lookup_maybe(o, nameid); if (func == NULL) { - va_end(va); if (!PyErr_Occurred()) PyErr_SetObject(PyExc_AttributeError, nameid->object); return NULL; } - if (format && *format) + if (format && *format) { + va_start(va, format); args = Py_VaBuildValue(format, va); - else + va_end(va); + } + else { args = PyTuple_New(0); - - va_end(va); - + } if (args == NULL) { Py_DECREF(func); return NULL; @@ -1463,23 +1462,22 @@ { va_list va; PyObject *args, *func = 0, *retval; - va_start(va, format); func = lookup_maybe(o, nameid); if (func == NULL) { - va_end(va); if (!PyErr_Occurred()) Py_RETURN_NOTIMPLEMENTED; return NULL; } - if (format && *format) + if (format && *format) { + va_start(va, format); args = Py_VaBuildValue(format, va); - else + va_end(va); + } + else { args = PyTuple_New(0); - - va_end(va); - + } if (args == NULL) { Py_DECREF(func); return NULL;