summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVictor Stinner <victor.stinner@gmail.com>2016-08-19 16:01:41 (GMT)
committerVictor Stinner <victor.stinner@gmail.com>2016-08-19 16:01:41 (GMT)
commit94463c980ec8b3f54bd223036ec0363ff4266362 (patch)
treef1410544870ebd78daba7c5baa8371a70ffbf8b7
parent56142c701b90c68a2a37fc23b0d7ba66c25fc3b4 (diff)
downloadcpython-94463c980ec8b3f54bd223036ec0363ff4266362.zip
cpython-94463c980ec8b3f54bd223036ec0363ff4266362.tar.gz
cpython-94463c980ec8b3f54bd223036ec0363ff4266362.tar.bz2
Cleanup call_method() and call_maybe()
Issue #27128. Move va_start/va_end around Py_VaBuildValue().
-rw-r--r--Objects/typeobject.c26
1 files changed, 12 insertions, 14 deletions
diff --git a/Objects/typeobject.c b/Objects/typeobject.c
index 0440180..10ced8b 100644
--- a/Objects/typeobject.c
+++ b/Objects/typeobject.c
@@ -1425,23 +1425,22 @@ call_method(PyObject *o, _Py_Identifier *nameid, const char *format, ...)
{
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 @@ call_maybe(PyObject *o, _Py_Identifier *nameid, const char *format, ...)
{
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;