summaryrefslogtreecommitdiff
path: root/src/whole.c
diff options
context:
space:
mode:
authorDonovan Baarda <abo@minkirri.apana.org.au>2021-09-16 11:37:18 +1000
committerGitHub <noreply@github.com>2021-09-16 11:37:18 +1000
commitd202e4eef208165aa7768ad15236e1cd1d6fae0c (patch)
tree7fe3f27a77873051d571b21880254fda9ab7e2cd /src/whole.c
parentb8609e9fb1ca888c852f6a7cf5b96690098f94e1 (diff)
parentc50bd630dde1c62c56cac0e917570a8c13173e07 (diff)
downloadlibrsync-d202e4eef208165aa7768ad15236e1cd1d6fae0c.tar.gz
Merge pull request #234 from dbaarda/dev/scoop1
Make delta directly process the input stream if it has enough data.
Diffstat (limited to 'src/whole.c')
-rw-r--r--src/whole.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/whole.c b/src/whole.c
index 04777f8..e667f88 100644
--- a/src/whole.c
+++ b/src/whole.c
@@ -111,9 +111,9 @@ rs_result rs_delta_file(rs_signature_t *sig, FILE *new_file, FILE *delta_file,
rs_result r;
job = rs_delta_begin(sig);
- /* Size inbuf for 1 block, outbuf for literal cmd + 4 blocks. */
- r = rs_whole_run(job, new_file, delta_file, sig->block_len,
- 10 + 4 * sig->block_len);
+ /* Size inbuf for 4*(CMD + 1 block), outbuf for 4*CMD. */
+ r = rs_whole_run(job, new_file, delta_file,
+ 4 * (MAX_DELTA_CMD + sig->block_len), 4 * MAX_DELTA_CMD);
if (stats)
memcpy(stats, &job->stats, sizeof *stats);
rs_job_free(job);
@@ -127,8 +127,9 @@ rs_result rs_patch_file(FILE *basis_file, FILE *delta_file, FILE *new_file,
rs_result r;
job = rs_patch_begin(rs_file_copy_cb, basis_file);
- /* Default size inbuf and outbuf 64K. */
- r = rs_whole_run(job, delta_file, new_file, 64 * 1024, 64 * 1024);
+ /* Default size inbuf 1*CMD and outbuf 4*CMD. */
+ r = rs_whole_run(job, delta_file, new_file, MAX_DELTA_CMD,
+ 4 * MAX_DELTA_CMD);
if (stats)
memcpy(stats, &job->stats, sizeof *stats);
rs_job_free(job);