icompress: Use a switch instead of an if/elseif construct - dedup - deduplicating backup program Err bitreich.org 70 hgit clone git://bitreich.org/dedup/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/dedup/ URL:git://bitreich.org/dedup/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/dedup/ bitreich.org 70 1Log /scm/dedup/log.gph bitreich.org 70 1Files /scm/dedup/files.gph bitreich.org 70 1Refs /scm/dedup/refs.gph bitreich.org 70 1Tags /scm/dedup/tag bitreich.org 70 1README /scm/dedup/file/README.gph bitreich.org 70 1LICENSE /scm/dedup/file/LICENSE.gph bitreich.org 70 i--- Err bitreich.org 70 1commit e401f4cd871cf10bbcaf31eee682c3ae34454b5d /scm/dedup/commit/e401f4cd871cf10bbcaf31eee682c3ae34454b5d.gph bitreich.org 70 1parent 481193d0d350c006ac751b4d36eb3a27baafb0a0 /scm/dedup/commit/481193d0d350c006ac751b4d36eb3a27baafb0a0.gph bitreich.org 70 hAuthor: sin URL:mailto:sin@2f30.org bitreich.org 70 iDate: Thu, 16 May 2019 13:51:28 +0300 Err bitreich.org 70 i Err bitreich.org 70 icompress: Use a switch instead of an if/elseif construct Err bitreich.org 70 i Err bitreich.org 70 iDo not check for invalid compression type in put()/get() as this is Err bitreich.org 70 ialready checked in creat()/open(). Err bitreich.org 70 i Err bitreich.org 70 iDiffstat: Err bitreich.org 70 i M bcompress.c | 47 +++++++++++++++---------------- Err bitreich.org 70 i Err bitreich.org 70 i1 file changed, 23 insertions(+), 24 deletions(-) Err bitreich.org 70 i--- Err bitreich.org 70 1diff --git a/bcompress.c b/bcompress.c /scm/dedup/file/bcompress.c.gph bitreich.org 70 i@@ -163,18 +163,20 @@ bcput(struct bctx *bctx, void *buf, size_t n, unsigned char *md) Err bitreich.org 70 i struct cd cd; Err bitreich.org 70 i char *cbuf; Err bitreich.org 70 i size_t cn; Err bitreich.org 70 i+ int r; Err bitreich.org 70 i Err bitreich.org 70 i /* Calculate compressed block size */ Err bitreich.org 70 i cctx = bctx->cctx; Err bitreich.org 70 i- if (cctx->type == CDNONETYPE) { Err bitreich.org 70 i+ switch (cctx->type) { Err bitreich.org 70 i+ case CDNONETYPE: Err bitreich.org 70 i cn = n; Err bitreich.org 70 i- } else if (cctx->type == CDSNAPPYTYPE) { Err bitreich.org 70 i+ break; Err bitreich.org 70 i+ case CDSNAPPYTYPE: Err bitreich.org 70 i cn = snappy_max_compressed_length(n); Err bitreich.org 70 i- } else if (cctx->type == CDLZ4TYPE) { Err bitreich.org 70 i+ break; Err bitreich.org 70 i+ case CDLZ4TYPE: Err bitreich.org 70 i cn = LZ4_compressBound(n); Err bitreich.org 70 i- } else { Err bitreich.org 70 i- seterr("invalid compression type: %d", cctx->type); Err bitreich.org 70 i- return -1; Err bitreich.org 70 i+ break; Err bitreich.org 70 i } Err bitreich.org 70 i Err bitreich.org 70 i cbuf = malloc(CDSIZE + cn); Err bitreich.org 70 i@@ -184,17 +186,18 @@ bcput(struct bctx *bctx, void *buf, size_t n, unsigned char *md) Err bitreich.org 70 i } Err bitreich.org 70 i Err bitreich.org 70 i /* Compress block */ Err bitreich.org 70 i- if (cctx->type == CDNONETYPE) { Err bitreich.org 70 i+ switch (cctx->type) { Err bitreich.org 70 i+ case CDNONETYPE: Err bitreich.org 70 i memcpy(&cbuf[CDSIZE], buf, cn); Err bitreich.org 70 i- } else if (cctx->type == CDSNAPPYTYPE) { Err bitreich.org 70 i+ break; Err bitreich.org 70 i+ case CDSNAPPYTYPE: Err bitreich.org 70 i if (snappy_compress(buf, n, &cbuf[CDSIZE], &cn) != SNAPPY_OK) { Err bitreich.org 70 i free(cbuf); Err bitreich.org 70 i seterr("snappy_compress: failed"); Err bitreich.org 70 i return -1; Err bitreich.org 70 i } Err bitreich.org 70 i- } else if (cctx->type == CDLZ4TYPE) { Err bitreich.org 70 i- int r; Err bitreich.org 70 i- Err bitreich.org 70 i+ break; Err bitreich.org 70 i+ case CDLZ4TYPE: Err bitreich.org 70 i r = LZ4_compress_default(buf, &cbuf[CDSIZE], n, cn); Err bitreich.org 70 i if (r < 0) { Err bitreich.org 70 i free(cbuf); Err bitreich.org 70 i@@ -202,10 +205,7 @@ bcput(struct bctx *bctx, void *buf, size_t n, unsigned char *md) Err bitreich.org 70 i return -1; Err bitreich.org 70 i } Err bitreich.org 70 i cn = r; Err bitreich.org 70 i- } else { Err bitreich.org 70 i- free(cbuf); Err bitreich.org 70 i- seterr("invalid compression type: %d", cctx->type); Err bitreich.org 70 i- return -1; Err bitreich.org 70 i+ break; Err bitreich.org 70 i } Err bitreich.org 70 i Err bitreich.org 70 i /* Prepend compression descriptor */ Err bitreich.org 70 i@@ -229,6 +229,7 @@ bcget(struct bctx *bctx, unsigned char *md, void *buf, size_t *n) Err bitreich.org 70 i struct cd cd; Err bitreich.org 70 i char *cbuf; Err bitreich.org 70 i size_t cn, un, size; Err bitreich.org 70 i+ int r; Err bitreich.org 70 i Err bitreich.org 70 i /* Calculate maximum compressed block size */ Err bitreich.org 70 i size = *n; Err bitreich.org 70 i@@ -254,7 +255,8 @@ bcget(struct bctx *bctx, unsigned char *md, void *buf, size_t *n) Err bitreich.org 70 i unpackcd(cbuf, &cd); Err bitreich.org 70 i Err bitreich.org 70 i /* Decompress block */ Err bitreich.org 70 i- if (cd.type == CDNONETYPE) { Err bitreich.org 70 i+ switch (cd.type) { Err bitreich.org 70 i+ case CDNONETYPE: Err bitreich.org 70 i un = cd.size; Err bitreich.org 70 i if (*n < un) { Err bitreich.org 70 i free(cbuf); Err bitreich.org 70 i@@ -262,7 +264,8 @@ bcget(struct bctx *bctx, unsigned char *md, void *buf, size_t *n) Err bitreich.org 70 i return -1; Err bitreich.org 70 i } Err bitreich.org 70 i memcpy(buf, &cbuf[CDSIZE], un); Err bitreich.org 70 i- } else if (cd.type == CDSNAPPYTYPE) { Err bitreich.org 70 i+ break; Err bitreich.org 70 i+ case CDSNAPPYTYPE: Err bitreich.org 70 i if (snappy_uncompressed_length(&cbuf[CDSIZE], cd.size, Err bitreich.org 70 i &un) != SNAPPY_OK) { Err bitreich.org 70 i free(cbuf); Err bitreich.org 70 i@@ -282,9 +285,8 @@ bcget(struct bctx *bctx, unsigned char *md, void *buf, size_t *n) Err bitreich.org 70 i seterr("snappy_uncompress: failed"); Err bitreich.org 70 i return -1; Err bitreich.org 70 i } Err bitreich.org 70 i- } else if (cd.type == CDLZ4TYPE) { Err bitreich.org 70 i- int r; Err bitreich.org 70 i- Err bitreich.org 70 i+ break; Err bitreich.org 70 i+ case CDLZ4TYPE: Err bitreich.org 70 i r = LZ4_decompress_safe(&cbuf[CDSIZE], buf, cd.size, *n); Err bitreich.org 70 i if (r < 0) { Err bitreich.org 70 i free(cbuf); Err bitreich.org 70 i@@ -292,10 +294,7 @@ bcget(struct bctx *bctx, unsigned char *md, void *buf, size_t *n) Err bitreich.org 70 i return -1; Err bitreich.org 70 i } Err bitreich.org 70 i un = r; Err bitreich.org 70 i- } else { Err bitreich.org 70 i- free(cbuf); Err bitreich.org 70 i- seterr("invalid compression type: %d", cd.type); Err bitreich.org 70 i- return -1; Err bitreich.org 70 i+ break; Err bitreich.org 70 i } Err bitreich.org 70 i Err bitreich.org 70 i free(cbuf); Err bitreich.org 70 .