]> granicus.if.org Git - python/commitdiff
Inline cmp_lt().
authorRaymond Hettinger <python@rcn.com>
Sun, 5 Sep 2010 05:26:10 +0000 (05:26 +0000)
committerRaymond Hettinger <python@rcn.com>
Sun, 5 Sep 2010 05:26:10 +0000 (05:26 +0000)
Modules/_heapqmodule.c

index fd0ecac287ebc0e2ea89bb1433f8596345906009..1066f94b002a8b56297b336bddcf312039e9ff25 100644 (file)
@@ -8,12 +8,6 @@ annotated by François Pinard, and converted to C by Raymond Hettinger.
 
 #include "Python.h"
 
-static int
-cmp_lt(PyObject *x, PyObject *y)
-{
-    return PyObject_RichCompareBool(x, y, Py_LT);
-}
-
 static int
 _siftdown(PyListObject *heap, Py_ssize_t startpos, Py_ssize_t pos)
 {
@@ -34,7 +28,7 @@ _siftdown(PyListObject *heap, Py_ssize_t startpos, Py_ssize_t pos)
     while (pos > startpos){
         parentpos = (pos - 1) >> 1;
         parent = PyList_GET_ITEM(heap, parentpos);
-        cmp = cmp_lt(newitem, parent);
+        cmp = PyObject_RichCompareBool(newitem, parent, Py_LT);
         if (cmp == -1) {
             Py_DECREF(newitem);
             return -1;
@@ -74,9 +68,10 @@ _siftup(PyListObject *heap, Py_ssize_t pos)
         /* Set childpos to index of smaller child.   */
         rightpos = childpos + 1;
         if (rightpos < endpos) {
-            cmp = cmp_lt(
+            cmp = PyObject_RichCompareBool(
                 PyList_GET_ITEM(heap, childpos),
-                PyList_GET_ITEM(heap, rightpos));
+                PyList_GET_ITEM(heap, rightpos),
+                Py_LT);
             if (cmp == -1) {
                 Py_DECREF(newitem);
                 return -1;
@@ -219,7 +214,7 @@ heappushpop(PyObject *self, PyObject *args)
         return item;
     }
 
-    cmp = cmp_lt(PyList_GET_ITEM(heap, 0), item);
+    cmp = PyObject_RichCompareBool(PyList_GET_ITEM(heap, 0), item, Py_LT);
     if (cmp == -1)
         return NULL;
     if (cmp == 0) {
@@ -318,7 +313,7 @@ nlargest(PyObject *self, PyObject *args)
             else
                 goto sortit;
         }
-        cmp = cmp_lt(sol, elem);
+        cmp = PyObject_RichCompareBool(sol, elem, Py_LT);
         if (cmp == -1) {
             Py_DECREF(elem);
             goto fail;
@@ -373,7 +368,7 @@ _siftdownmax(PyListObject *heap, Py_ssize_t startpos, Py_ssize_t pos)
     while (pos > startpos){
         parentpos = (pos - 1) >> 1;
         parent = PyList_GET_ITEM(heap, parentpos);
-        cmp = cmp_lt(parent, newitem);
+        cmp = PyObject_RichCompareBool(parent, newitem, Py_LT);
         if (cmp == -1) {
             Py_DECREF(newitem);
             return -1;
@@ -413,9 +408,10 @@ _siftupmax(PyListObject *heap, Py_ssize_t pos)
         /* Set childpos to index of smaller child.   */
         rightpos = childpos + 1;
         if (rightpos < endpos) {
-            cmp = cmp_lt(
+            cmp = PyObject_RichCompareBool(
                 PyList_GET_ITEM(heap, rightpos),
-                PyList_GET_ITEM(heap, childpos));
+                PyList_GET_ITEM(heap, childpos),
+                Py_LT);
             if (cmp == -1) {
                 Py_DECREF(newitem);
                 return -1;
@@ -488,7 +484,7 @@ nsmallest(PyObject *self, PyObject *args)
             else
                 goto sortit;
         }
-        cmp = cmp_lt(elem, los);
+        cmp = PyObject_RichCompareBool(elem, los, Py_LT);
         if (cmp == -1) {
             Py_DECREF(elem);
             goto fail;