]> granicus.if.org Git - python/commitdiff
bpo-37151: use PyVectorcall_Call for all calls of "method" (GH-13972)
authorJeroen Demeyer <J.Demeyer@UGent.be>
Tue, 18 Jun 2019 08:50:28 +0000 (10:50 +0200)
committerInada Naoki <songofacandy@gmail.com>
Tue, 18 Jun 2019 08:50:28 +0000 (17:50 +0900)
Objects/classobject.c

index f26a85c62371fd5e971adcc4a3b9ed15aaef6a2b..ec4d2b9910a22da09311fd02de826d7be8a3c3b3 100644 (file)
@@ -329,17 +329,6 @@ method_traverse(PyMethodObject *im, visitproc visit, void *arg)
     return 0;
 }
 
-static PyObject *
-method_call(PyObject *method, PyObject *args, PyObject *kwargs)
-{
-    PyObject *self, *func;
-
-    self = PyMethod_GET_SELF(method);
-    func = PyMethod_GET_FUNCTION(method);
-
-    return _PyObject_Call_Prepend(func, self, args, kwargs);
-}
-
 static PyObject *
 method_descr_get(PyObject *meth, PyObject *obj, PyObject *cls)
 {
@@ -362,7 +351,7 @@ PyTypeObject PyMethod_Type = {
     0,                                          /* tp_as_sequence */
     0,                                          /* tp_as_mapping */
     (hashfunc)method_hash,                      /* tp_hash */
-    method_call,                                /* tp_call */
+    PyVectorcall_Call,                          /* tp_call */
     0,                                          /* tp_str */
     method_getattro,                            /* tp_getattro */
     PyObject_GenericSetAttr,                    /* tp_setattro */