diff options
| author | Victor Stinner <victor.stinner@gmail.com> | 2016-08-22 23:33:13 +0200 |
|---|---|---|
| committer | Victor Stinner <victor.stinner@gmail.com> | 2016-08-22 23:33:13 +0200 |
| commit | 04ca689091773fa19c16bcacfccae2914e3fae56 (patch) | |
| tree | 94328cc522f105e2ae6d53528cf5efa6b6b4d885 /Python | |
| parent | 947bc084fc2339a44e3f55169653edd8bd17c248 (diff) | |
| download | cpython-04ca689091773fa19c16bcacfccae2914e3fae56.tar.gz | |
Issue #27809: Use _PyObject_FastCallDict()
Modify:
* init_subclass()
* builtin___build_class__()
Fix also a bug in init_subclass(): check for super() failure.
Diffstat (limited to 'Python')
| -rw-r--r-- | Python/bltinmodule.c | 12 |
1 files changed, 2 insertions, 10 deletions
diff --git a/Python/bltinmodule.c b/Python/bltinmodule.c index 1cdc0e2563..b22867eb07 100644 --- a/Python/bltinmodule.c +++ b/Python/bltinmodule.c @@ -155,16 +155,8 @@ builtin___build_class__(PyObject *self, PyObject *args, PyObject *kwds) } } else { - PyObject *pargs = PyTuple_Pack(2, name, bases); - if (pargs == NULL) { - Py_DECREF(prep); - Py_DECREF(meta); - Py_XDECREF(mkw); - Py_DECREF(bases); - return NULL; - } - ns = PyEval_CallObjectWithKeywords(prep, pargs, mkw); - Py_DECREF(pargs); + PyObject *pargs[2] = {name, bases}; + ns = _PyObject_FastCallDict(prep, pargs, 2, mkw); Py_DECREF(prep); } if (ns == NULL) { |
