changeset: 101178:d738f268a013 branch: 2.7 parent: 101171:5a578ec4b3b3 user: Serhiy Storchaka date: Fri Apr 29 09:12:38 2016 +0300 files: Modules/operator.c description: Issue #26822: Decreased an overhead of using _PyArg_NoKeywords() in calls of itemgetter, attrgetter and methodcaller objects. diff -r 5a578ec4b3b3 -r d738f268a013 Modules/operator.c --- a/Modules/operator.c Thu Apr 28 14:38:48 2016 -0500 +++ b/Modules/operator.c Fri Apr 29 09:12:38 2016 +0300 @@ -511,7 +511,7 @@ PyObject *obj, *result; Py_ssize_t i, nitems=ig->nitems; - if (!_PyArg_NoKeywords("itemgetter", kw)) + if (kw != NULL && !_PyArg_NoKeywords("itemgetter", kw)) return NULL; if (!PyArg_UnpackTuple(args, "itemgetter", 1, 1, &obj)) return NULL; @@ -693,7 +693,7 @@ PyObject *obj, *result; Py_ssize_t i, nattrs=ag->nattrs; - if (!_PyArg_NoKeywords("attrgetter", kw)) + if (kw != NULL && !_PyArg_NoKeywords("attrgetter", kw)) return NULL; if (!PyArg_UnpackTuple(args, "attrgetter", 1, 1, &obj)) return NULL; @@ -842,7 +842,7 @@ { PyObject *method, *obj, *result; - if (!_PyArg_NoKeywords("methodcaller", kw)) + if (kw != NULL && !_PyArg_NoKeywords("methodcaller", kw)) return NULL; if (!PyArg_UnpackTuple(args, "methodcaller", 1, 1, &obj)) return NULL;