diff -dur pan-0.14.2.91/pan/base/msort.c src.pan.1135212550.26493.3069070791/pan-0.14.2.91/pan/base/msort.c
|
|
--- pan-0.14.2.91/pan/base/msort.c 2001-06-18 20:33:38.000000000 +0200
|
|
+++ src.pan.1135212550.26493.3069070791/pan-0.14.2.91/pan/base/msort.c 2005-12-23 22:28:43.000000000 +0100
|
|
@@ -62,18 +62,18 @@
|
|
/* operating on aligned words. Use direct word stores. */
|
|
while (n1 > 0 && n2 > 0)
|
|
{
|
|
+ unsigned long int **tmpptr = &tmp, **bptr;
|
|
if ((*cmp) (b1, b2) <= 0)
|
|
{
|
|
--n1;
|
|
- *((unsigned long int *) tmp)++ =
|
|
- *((unsigned long int *) b1)++;
|
|
+ bptr = &b1;
|
|
}
|
|
else
|
|
{
|
|
--n2;
|
|
- *((unsigned long int *) tmp)++ =
|
|
- *((unsigned long int *) b2)++;
|
|
+ bptr = &b2;
|
|
}
|
|
+ **tmpptr = *bptr; (*tmpptr)++; (*bptr)++;
|
|
}
|
|
else
|
|
while (n1 > 0 && n2 > 0)
|