]> Sergey Matveev's repositories - nnn.git/commitdiff
Explicitly optimize modulo ops
authorArun Prakash Jana <engineerarun@gmail.com>
Mon, 8 Jan 2018 18:43:11 +0000 (00:13 +0530)
committerArun Prakash Jana <engineerarun@gmail.com>
Mon, 8 Jan 2018 18:43:11 +0000 (00:13 +0530)
nnn.c

diff --git a/nnn.c b/nnn.c
index c7e5d48d9f6b01b9c757ec0aa97d64aa97ba98fe..397ccd1c7b50baff4ef2ed7d58879218b0fc4aff 100644 (file)
--- a/nnn.c
+++ b/nnn.c
@@ -384,7 +384,7 @@ xstrlcpy(char *dest, const char *src, size_t n)
                s = (ulong *)src;
                d = (ulong *)dest;
                blocks = n >> _WSHIFT;
-               n -= (blocks << _WSHIFT);
+               n &= lsize - 1;
 
                while (blocks) {
                        *d = *s;
@@ -1278,7 +1278,6 @@ coolsize(off_t size)
        static const char * const U = "BKMGTPEZY";
        static char size_buf[12]; /* Buffer to hold human readable size */
        static int i;
-       static off_t tmp;
 
        static long double rem;
        static const double div_2_pow_10 = 1.0 / 1024.0;
@@ -1287,9 +1286,8 @@ coolsize(off_t size)
        rem = 0;
 
        while (size > 1024) {
-               tmp = size;
+               rem = size & (0x3FF); /* 1024 - 1 = 0x3FF */
                size >>= 10;
-               rem = tmp - (size << 10);
                ++i;
        }