The branch, master has been updated via 2bee3075 Get rid of some superfluous lz4 code. via 85e62c33 Tweak indentation. from 0add026a Initialize values string in a more consistent spot.
https://git.samba.org/?p=rsync.git;a=shortlog;h=master - Log ----------------------------------------------------------------- commit 2bee307592a880eddf156a127955a1f6e9b99cd3 Author: Wayne Davison <wa...@opencoder.net> Date: Sat Jul 4 15:58:56 2020 -0700 Get rid of some superfluous lz4 code. commit 85e62c330dcf60fbad7ab6604fbfebcc585adaf3 Author: Wayne Davison <wa...@opencoder.net> Date: Sat Jul 4 15:27:47 2020 -0700 Tweak indentation. ----------------------------------------------------------------------- Summary of changes: token.c | 188 ++++++++++++++++++++++------------------------------------------ 1 file changed, 64 insertions(+), 124 deletions(-) Changeset truncated at 500 lines: diff --git a/token.c b/token.c index 68d9bde3..f15637e4 100644 --- a/token.c +++ b/token.c @@ -376,8 +376,7 @@ send_deflated_token(int f, int32 token, struct map_struct *buf, OFF_T offset, in flush_pending = 0; } else if (last_token == -2) { run_start = token; - } else if (nb != 0 || token != last_token + 1 - || token >= run_start + 65536) { + } else if (nb != 0 || token != last_token + 1 || token >= run_start + 65536) { /* output previous run */ r = run_start - last_run_end; n = last_token - run_start; @@ -679,7 +678,6 @@ static void send_zstd_token(int f, int32 token, struct map_struct *buf, OFF_T of /* initialization */ if (!comp_init_done) { - zstd_cctx = ZSTD_createCCtx(); if (!zstd_cctx) { rprintf(FERROR, "compression init failed\n"); @@ -700,10 +698,7 @@ static void send_zstd_token(int f, int32 token, struct map_struct *buf, OFF_T of flush_pending = 0; } else if (last_token == -2) { run_start = token; - - } else if (nb != 0 || token != last_token + 1 - || token >= run_start + 65536) { - + } else if (nb != 0 || token != last_token + 1 || token >= run_start + 65536) { /* output previous run */ r = run_start - last_run_end; n = last_token - run_start; @@ -785,7 +780,6 @@ static int32 recv_zstd_token(int f, char **data) int r; if (!decomp_init_done) { - zstd_dctx = ZSTD_createDCtx(); if (!zstd_dctx) { rprintf(FERROR, "ZSTD_createDStream failed\n"); @@ -803,30 +797,31 @@ static int32 recv_zstd_token(int f, char **data) decomp_init_done = 1; } - do { - switch (recv_state) { - case r_init: - recv_state = r_idle; - rx_token = 0; - break; - - case r_idle: - flag = read_byte(f); - if ((flag & 0xC0) == DEFLATED_DATA) { - n = ((flag & 0x3f) << 8) + read_byte(f); - read_buf(f, cbuf, n); + for (;;) { + switch (recv_state) { + case r_init: + recv_state = r_idle; + rx_token = 0; + break; - zstd_in_buff.size = n; - zstd_in_buff.pos = 0; + case r_idle: + flag = read_byte(f); + if ((flag & 0xC0) == DEFLATED_DATA) { + n = ((flag & 0x3f) << 8) + read_byte(f); + read_buf(f, cbuf, n); - recv_state = r_inflating; + zstd_in_buff.size = n; + zstd_in_buff.pos = 0; - } else if (flag == END_FLAG) { - /* that's all folks */ - recv_state = r_init; - return 0; + recv_state = r_inflating; + break; + } - } else { + if (flag == END_FLAG) { + /* that's all folks */ + recv_state = r_init; + return 0; + } /* here we have a token of some kind */ if (flag & TOKEN_REL) { rx_token += flag & 0x3f; @@ -839,45 +834,42 @@ static int32 recv_zstd_token(int f, char **data) recv_state = r_running; } return -1 - rx_token; - } - break; - case r_inflating: - zstd_out_buff.size = out_buffer_size; - zstd_out_buff.pos = 0; + case r_inflated: /* zstd doesn't get into this state */ + break; - r = ZSTD_decompressStream(zstd_dctx, &zstd_out_buff, &zstd_in_buff); - n = zstd_out_buff.pos; - if (ZSTD_isError(r)) { - rprintf(FERROR, "ZSTD decomp returned %d (%d bytes)\n", r, n); - exit_cleanup(RERR_STREAMIO); - } + case r_inflating: + zstd_out_buff.size = out_buffer_size; + zstd_out_buff.pos = 0; - /* - * If the input buffer is fully consumed and the output - * buffer is not full then next step is to read more - * data. - */ - if (zstd_in_buff.size == zstd_in_buff.pos && n < out_buffer_size) - recv_state = r_idle; + r = ZSTD_decompressStream(zstd_dctx, &zstd_out_buff, &zstd_in_buff); + n = zstd_out_buff.pos; + if (ZSTD_isError(r)) { + rprintf(FERROR, "ZSTD decomp returned %d (%d bytes)\n", r, n); + exit_cleanup(RERR_STREAMIO); + } - if (n != 0) { - *data = dbuf; - return n; - } - break; + /* + * If the input buffer is fully consumed and the output + * buffer is not full then next step is to read more + * data. + */ + if (zstd_in_buff.size == zstd_in_buff.pos && n < out_buffer_size) + recv_state = r_idle; - case r_running: - ++rx_token; - if (--rx_run == 0) - recv_state = r_idle; - return -1 - rx_token; - break; + if (n != 0) { + *data = dbuf; + return n; + } + break; - case r_inflated: - break; + case r_running: + ++rx_token; + if (--rx_run == 0) + recv_state = r_idle; + return -1 - rx_token; + } } - } while (1); } #endif /* SUPPORT_ZSTD */ @@ -899,8 +891,7 @@ send_compressed_token(int f, int32 token, struct map_struct *buf, OFF_T offset, flush_pending = 0; } else if (last_token == -2) { run_start = token; - } else if (nb != 0 || token != last_token + 1 - || token >= run_start + 65536) { + } else if (nb != 0 || token != last_token + 1 || token >= run_start + 65536) { /* output previous run */ r = run_start - last_run_end; n = last_token - run_start; @@ -925,7 +916,6 @@ send_compressed_token(int f, int32 token, struct map_struct *buf, OFF_T offset, const char *next_in; do { - char *ptr = obuf; char *next_out = obuf + 2; if (available_out == 0) { @@ -940,10 +930,10 @@ send_compressed_token(int f, int32 token, struct map_struct *buf, OFF_T offset, exit_cleanup(RERR_STREAMIO); } if (available_out <= MAX_DATA_COUNT) { - ptr[0] = DEFLATED_DATA + (available_out >> 8); - ptr[1] = available_out; + obuf[0] = DEFLATED_DATA + (available_out >> 8); + obuf[1] = available_out; - write_buf(f, ptr, available_out + 2); + write_buf(f, obuf, available_out + 2); available_out = 0; nb -= available_in; @@ -952,14 +942,14 @@ send_compressed_token(int f, int32 token, struct map_struct *buf, OFF_T offset, } while (nb != 0); flush_pending = token == -2; } - if (token == -1) + if (token == -1) { /* end of file - clean up */ write_byte(f, END_FLAG); + } } static int32 recv_compressed_token(int f, char **data) { - static int32 saved_flag; static int init_done; int32 n, flag; int size = MAX(LZ4_compressBound(CHUNK_SIZE), MAX_DATA_COUNT+2); @@ -978,13 +968,9 @@ static int32 recv_compressed_token(int f, char **data) recv_state = r_idle; rx_token = 0; break; + case r_idle: - case r_inflated: - if (saved_flag) { - flag = saved_flag & 0xff; - saved_flag = 0; - } else - flag = read_byte(f); + flag = read_byte(f); if ((flag & 0xC0) == DEFLATED_DATA) { n = ((flag & 0x3f) << 8) + read_byte(f); read_buf(f, cbuf, n); @@ -994,9 +980,6 @@ static int32 recv_compressed_token(int f, char **data) break; } - if (recv_state == r_inflated) - recv_state = r_idle; - if (flag == END_FLAG) { /* that's all folks */ recv_state = r_init; @@ -1022,10 +1005,13 @@ static int32 recv_compressed_token(int f, char **data) rprintf(FERROR, "uncompress failed: %d\n", avail_out); exit_cleanup(RERR_STREAMIO); } - recv_state = r_inflated; + recv_state = r_idle; *data = dbuf; return avail_out; + case r_inflated: /* lz4 doesn't get into this state */ + break; + case r_running: ++rx_token; if (--rx_run == 0) @@ -1033,53 +1019,7 @@ static int32 recv_compressed_token(int f, char **data) return -1 - rx_token; } } - -} - -# if 0 -static void see_uncompressed_token(char *buf, int32 len) -{ - static const char *next_in; - static int avail_in; - int avail_out; - - int32 blklen; - char hdr[5]; - - avail_in = 0; - blklen = 0; - hdr[0] = 0; - do { - if (avail_in == 0 && len != 0) { - if (blklen == 0) { - /* Give it a fake stored-block header. */ - next_in = hdr; - avail_in = 5; - blklen = len; - if (blklen > 0xffff) - blklen = 0xffff; - hdr[1] = blklen; - hdr[2] = blklen >> 8; - hdr[3] = ~hdr[1]; - hdr[4] = ~hdr[2]; - } else { - next_in = (char *)buf; - avail_in = blklen; - if (protocol_version >= 31) /* Newer protocols avoid a data-duplicating bug */ - buf += blklen; - len -= blklen; - blklen = 0; - } - } - avail_out = LZ4_decompress_safe(next_in, dbuf, avail_in, LZ4_compressBound(CHUNK_SIZE)); - if (avail_out < 0) { - rprintf(FERROR, "uncompress failed: %d\n", avail_out); - exit_cleanup(RERR_STREAMIO); - } - - } while (len); } -# endif /* 0 */ #endif /* SUPPORT_LZ4 */ /** -- The rsync repository. _______________________________________________ rsync-cvs mailing list rsync-cvs@lists.samba.org https://lists.samba.org/mailman/listinfo/rsync-cvs