* of the GNU Lesser General Public License.
*/
-/* FIXME: There is a plenty of room for further optimization */
-/* FIXME: Swap outputs if there already are some runs? */
-
static void P(twoway_merge)(struct sort_context *ctx UNUSED, struct sort_bucket **ins, struct sort_bucket **outs)
{
struct fastbuf *fin1, *fin2, *fout1, *fout2, *ftmp;
}
run_count++;
}
+#ifdef SORT_ASSERT_UNIQUE
+ ASSERT(comp != 0);
+#endif
if (comp LESS 0)
{
P(copy_data)(kin1, fin1, fout1);
run1 = next1 && (P(compare)(kprev1, kin1) LESS 0);
kout = kprev1;
}
-#ifdef SORT_MERGE
+#ifdef SORT_UNIFY
else if (comp == 0)
{
P(key) *mkeys[] = { kin1, kin2 };
run2 = next2 && (P(compare)(kprev2, kin2) LESS 0);
kout = kprev2;
}
-#endif
-#ifdef SORT_ASSERT_UNIQUE
- else if (unlikely(comp == 0))
- ASSERT(0);
#endif
else
{