summaryrefslogtreecommitdiff
path: root/wikisort.c
diff options
context:
space:
mode:
Diffstat (limited to 'wikisort.c')
-rw-r--r--wikisort.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/wikisort.c b/wikisort.c
index b04b3ff..65af111 100644
--- a/wikisort.c
+++ b/wikisort.c
@@ -85,7 +85,7 @@ void wikisort(void *unsorted, size_t nmel, size_t width, cmpfun cmp)
/* if blocks in b are all less than those in a, just need a rotate */
if (cmp(base + (nmel - 1) * width, base) <= 0) {
- rotate(base, nmel, width, a.nmel * bnmel + buf.nmel);
+ rotate(base, nmel * width, (a.nmel * bnmel + buf.nmel) * width);
return;
}
@@ -102,7 +102,7 @@ void wikisort(void *unsorted, size_t nmel, size_t width, cmpfun cmp)
pendb_nmel += rolled_blocks * bnmel;
if (pendb_nmel) {
size_t offset = pendb_nmel - binary_search(a.base, a.base - pendb_nmel * width, pendb_nmel, width, cmp);
- rotate(a.base - offset * width, bnmel + offset, width, offset);
+ rotate(a.base - offset * width, (bnmel + offset) * width, offset * width);
pendb_nmel -= offset;
if (penda.nmel && pendb_nmel) {