lib/sort.c optimization
authorSubbaiah Venkata <kvsnaidu@sapnaidu.net>
Wed, 17 Oct 2007 06:27:06 +0000 (23:27 -0700)
committerLinus Torvalds <torvalds@woody.linux-foundation.org>
Wed, 17 Oct 2007 15:42:52 +0000 (08:42 -0700)
Hello, I fixed and tested a small bug in lib/sort.c file, heap sort
function.

The fix avoids unnecessary swap of contents when i is 0 (saves few loads
and stores), which happens every time sort function is called.  I felt the
fix is worth bringing it to your attention given the importance and
frequent use of the sort function.

Acked-by: Matt Mackall <mpm@selenic.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
lib/sort.c

index 961567894d16b89a208244ea957e44a3d9afd668..6abbaf3d5858e587705881a4ab6d45a65b8f4e89 100644 (file)
@@ -67,7 +67,7 @@ void sort(void *base, size_t num, size_t size,
        }
 
        /* sort */
-       for (i = n - size; i >= 0; i -= size) {
+       for (i = n - size; i > 0; i -= size) {
                swap(base, base + i, size);
                for (r = 0; r * 2 + size < i; r = c) {
                        c = r * 2 + size;