]> granicus.if.org Git - python/commitdiff
Hoist constant expression out of the inner loop.
authorRaymond Hettinger <python@rcn.com>
Fri, 9 Oct 2015 05:34:08 +0000 (01:34 -0400)
committerRaymond Hettinger <python@rcn.com>
Fri, 9 Oct 2015 05:34:08 +0000 (01:34 -0400)
Python/bltinmodule.c

index 3f2e2c004ef7f6b514ed3a969d3fd9a0f5c39b42..3c8f1e98419ffbcc70f1419086f9a77011f3f0bd 100644 (file)
@@ -469,6 +469,7 @@ filter_next(filterobject *lz)
     PyObject *it = lz->it;
     long ok;
     PyObject *(*iternext)(PyObject *);
+    int checktrue = lz->func == Py_None || lz->func == (PyObject *)&PyBool_Type;
 
     iternext = *Py_TYPE(it)->tp_iternext;
     for (;;) {
@@ -476,12 +477,11 @@ filter_next(filterobject *lz)
         if (item == NULL)
             return NULL;
 
-        if (lz->func == Py_None || lz->func == (PyObject *)&PyBool_Type) {
+        if (checktrue) {
             ok = PyObject_IsTrue(item);
         } else {
             PyObject *good;
-            good = PyObject_CallFunctionObjArgs(lz->func,
-                                                item, NULL);
+            good = PyObject_CallFunctionObjArgs(lz->func, item, NULL);
             if (good == NULL) {
                 Py_DECREF(item);
                 return NULL;