SMOLNET PORTAL home about changes
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 <sin@2f30.org>	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
.
Response: text/plain
Original URLgopher://bitreich.org/0/scm/dedup/commit/e401f4cd871cf10b...
Content-Typetext/plain; charset=utf-8