]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Issue #26822: Decreased an overhead of using _PyArg_NoKeywords() in calls of
authorSerhiy Storchaka <storchaka@gmail.com>
Fri, 29 Apr 2016 06:10:55 +0000 (09:10 +0300)
committerSerhiy Storchaka <storchaka@gmail.com>
Fri, 29 Apr 2016 06:10:55 +0000 (09:10 +0300)
itemgetter, attrgetter and methodcaller objects.

Modules/_operator.c

index 2f1ee0ed907aa27b8003ab9d24651edb1837b7e4..eb4f3a34edbf64085c6f6fba4ddb9c9409b99bc3 100644 (file)
@@ -460,7 +460,7 @@ itemgetter_call(itemgetterobject *ig, PyObject *args, PyObject *kw)
     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;
@@ -749,7 +749,7 @@ attrgetter_call(attrgetterobject *ag, PyObject *args, PyObject *kw)
     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;
@@ -992,7 +992,7 @@ methodcaller_call(methodcallerobject *mc, PyObject *args, PyObject *kw)
 {
     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;