live-bootstrap/sysa/tcc-0.9.27/patches-mes-libc/qsort.patch
Andrius Štikonas 419cd74d92 Move tcc 0.9.27 after bzip2.
This also allows to merge two builds of tcc 0.9.27.
Drop tcc 0.9.27 git submodule.
2021-04-17 01:29:31 +01:00

28 lines
556 B
Diff

SPDX-FileCopyrightText: 2021 Paul Dersey <pdersey@gmail.com>
SPDX-License-Identifier: LGPL-2.0-or-later
Reimplement qswap in a more correct manner that works much more cleanly and
with larger string sizes.
--- lib/stdlib/qsort.c
+++ lib/stdlib/qsort.c
@@ -24,10 +25,14 @@
void
qswap (void *a, void *b, size_t size)
{
- char *buf[8];
- memcpy (buf, a, size);
- memcpy (a, b, size);
- memcpy (b, buf, size);
+ char *pa = a;
+ char *pb = b;
+ do
+ {
+ char tmp = *pa;
+ *pa++ = *pb;
+ *pb++ = tmp;
+ } while (--size > 0);
}
size_t