]> git.ipfire.org Git - thirdparty/zlib-ng.git/commitdiff
Remove extra division operation in chunkcopy.
authorNathan Moinvaziri <nathan@nathanm.com>
Fri, 11 Jun 2021 01:03:08 +0000 (18:03 -0700)
committerHans Kristian Rosbach <hk-github@circlestorm.org>
Sat, 26 Jun 2021 08:26:23 +0000 (10:26 +0200)
chunkset_tpl.h

index ff760fcf691ff2fde855003c5ef03ba9b58f5b50..1018aac3a39f97e677db5a6ee66c6b18d82fafa6 100644 (file)
@@ -20,18 +20,18 @@ Z_INTERNAL uint32_t CHUNKSIZE(void) {
 Z_INTERNAL uint8_t* CHUNKCOPY(uint8_t *out, uint8_t const *from, unsigned len) {
     Assert(len > 0, "chunkcopy should never have a length 0");
     chunk_t chunk;
-    int32_t align = (--len % sizeof(chunk_t)) + 1;
+    int32_t align = ((len - 1) % sizeof(chunk_t)) + 1;
     loadchunk(from, &chunk);
     storechunk(out, &chunk);
     out += align;
     from += align;
-    len /= sizeof(chunk_t);
+    len -= align;
     while (len > 0) {
         loadchunk(from, &chunk);
         storechunk(out, &chunk);
         out += sizeof(chunk_t);
         from += sizeof(chunk_t);
-        --len;
+        len -= sizeof(chunk_t);
     }
     return out;
 }