summaryrefslogtreecommitdiff
path: root/chunkset_tpl.h
diff options
context:
space:
mode:
authorNathan Moinvaziri <nathan@nathanm.com>2021-06-04 15:27:26 -0700
committerHans Kristian Rosbach <hk-git@circlestorm.org>2021-06-13 20:57:36 +0200
commit11d7321e04024a46a5438cdcf4ec740e019e4842 (patch)
treef06706d294528fcb7bafd566ebae9d8f2d4f4429 /chunkset_tpl.h
parent64380644b0964020c9d89ecb97965f732cac0470 (diff)
Calculate from and out buffer advance only once in chunkcopy.
Diffstat (limited to 'chunkset_tpl.h')
-rw-r--r--chunkset_tpl.h6
1 files changed, 3 insertions, 3 deletions
diff --git a/chunkset_tpl.h b/chunkset_tpl.h
index ae049e7..55e0708 100644
--- a/chunkset_tpl.h
+++ b/chunkset_tpl.h
@@ -19,11 +19,11 @@ Z_INTERNAL uint32_t CHUNKSIZE(void) {
reliable. */
Z_INTERNAL uint8_t* CHUNKCOPY(uint8_t *out, uint8_t const *from, unsigned len) {
chunk_t chunk;
- --len;
+ int32_t align = (--len % sizeof(chunk_t)) + 1;
loadchunk(from, &chunk);
storechunk(out, &chunk);
- out += (len % sizeof(chunk_t)) + 1;
- from += (len % sizeof(chunk_t)) + 1;
+ out += align;
+ from += align;
len /= sizeof(chunk_t);
while (len > 0) {
loadchunk(from, &chunk);