]> granicus.if.org Git - python/commitdiff
Cleanup call_method() and call_maybe()
authorVictor Stinner <victor.stinner@gmail.com>
Fri, 19 Aug 2016 16:01:41 +0000 (18:01 +0200)
committerVictor Stinner <victor.stinner@gmail.com>
Fri, 19 Aug 2016 16:01:41 +0000 (18:01 +0200)
Issue #27128. Move va_start/va_end around Py_VaBuildValue().

Objects/typeobject.c

index 0440180028693ae4db6c6f93b7ce92a59b4db617..10ced8b064f9967b5e3c4a7f636aaebbd5a63864 100644 (file)
@@ -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;