]> mj.ucw.cz Git - libucw.git/blobdiff - lib/arraysort.h
Empty final bucket should be turned into a file as well.
[libucw.git] / lib / arraysort.h
index 776051e932a21ea7e0bc0388c1cf62cdc32ac219..d5a9c787d3279643f7df1c5edfb3a52f95fee29a 100644 (file)
@@ -1,5 +1,5 @@
 /*
 /*
- *     Sherlock Library -- Universal Array Sorter
+ *     UCW Library -- Universal Array Sorter
  *
  *     (c) 2003 Martin Mares <mj@ucw.cz>
  *
  *
  *     (c) 2003 Martin Mares <mj@ucw.cz>
  *
@@ -53,7 +53,7 @@
 #define ASORT_EXTRA_ARGS
 #endif
 
 #define ASORT_EXTRA_ARGS
 #endif
 
-static void ASORT_PREFIX(sort)(uns array_size)
+static void ASORT_PREFIX(sort)(uns array_size ASORT_EXTRA_ARGS)
 {
   struct stk { int l, r; } stack[8*sizeof(uns)];
   int l, r, left, right, m;
 {
   struct stk { int l, r; } stack[8*sizeof(uns)];
   int l, r, left, right, m;
@@ -100,7 +100,7 @@ static void ASORT_PREFIX(sort)(uns array_size)
            }
        }
       while (l <= r);
            }
        }
       while (l <= r);
-      if ((r - left) > ASORT_THRESHOLD && (right - l) > ASORT_THRESHOLD)
+      if ((r - left) >= ASORT_THRESHOLD && (right - l) >= ASORT_THRESHOLD)
        {
          /* Both partitions ok => push the larger one */
          if ((r - left) > (right - l))
        {
          /* Both partitions ok => push the larger one */
          if ((r - left) > (right - l))
@@ -117,12 +117,12 @@ static void ASORT_PREFIX(sort)(uns array_size)
            }
          sp++;
        }
            }
          sp++;
        }
-      else if ((r - left) > ASORT_THRESHOLD)
+      else if ((r - left) >= ASORT_THRESHOLD)
        {
          /* Left partition OK, right undersize */
          right = r;
        }
        {
          /* Left partition OK, right undersize */
          right = r;
        }
-      else if ((right - l) > ASORT_THRESHOLD)
+      else if ((right - l) >= ASORT_THRESHOLD)
        {
          /* Right partition OK, left undersize */
          left = l;
        {
          /* Right partition OK, left undersize */
          left = l;
@@ -166,9 +166,9 @@ static void ASORT_PREFIX(sort)(uns array_size)
 }
 
 #undef ASORT_PREFIX
 }
 
 #undef ASORT_PREFIX
-#undef ASORT_TYPE
+#undef ASORT_KEY_TYPE
 #undef ASORT_ELT
 #undef ASORT_ELT
-#undef ASORT_EQ
+#undef ASORT_LT
 #undef ASORT_SWAP
 #undef ASORT_THRESHOLD
 #undef ASORT_EXTRA_ARGS
 #undef ASORT_SWAP
 #undef ASORT_THRESHOLD
 #undef ASORT_EXTRA_ARGS