summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoshua MacDonald <josh.macdonald@gmail.com>2015-12-26 21:41:27 -0800
committerJoshua MacDonald <josh.macdonald@gmail.com>2015-12-26 21:41:27 -0800
commitcf662894ba5b3847f06fd44dfb91f4733d9196f4 (patch)
tree43da15828e3c590e0c5ff590fb1f1bda7edca957
parent24def2845b33800718d2b3f70b8cf575c42da918 (diff)
Matches 3.0.10 behavior, approximately, insofar as stream.srcwin_cksum_pos; TODOs added
-rw-r--r--xdelta3/xdelta3-main.h2
-rw-r--r--xdelta3/xdelta3.c9
2 files changed, 9 insertions, 2 deletions
diff --git a/xdelta3/xdelta3-main.h b/xdelta3/xdelta3-main.h
index ede5e73..fac5d8d 100644
--- a/xdelta3/xdelta3-main.h
+++ b/xdelta3/xdelta3-main.h
@@ -3324,7 +3324,7 @@ main_input (xd3_cmd cmd,
3324 main_format_bcnt (stream.total_in, &trdb), 3324 main_format_bcnt (stream.total_in, &trdb),
3325 main_format_bcnt (stream.total_out, &twdb), 3325 main_format_bcnt (stream.total_out, &twdb),
3326 main_format_millis (millis, &tm), 3326 main_format_millis (millis, &tm),
3327 main_format_bcnt (sfile->source_position, &srcpos)); 3327 main_format_bcnt (stream.srcwin_cksum_pos, &srcpos));
3328 } 3328 }
3329 else 3329 else
3330 { 3330 {
diff --git a/xdelta3/xdelta3.c b/xdelta3/xdelta3.c
index 7de4a6f..adb1507 100644
--- a/xdelta3/xdelta3.c
+++ b/xdelta3/xdelta3.c
@@ -4395,7 +4395,14 @@ xd3_srcwin_move_point (xd3_stream *stream, usize_t *next_move_point)
4395 } 4395 }
4396 else 4396 else
4397 { 4397 {
4398 target_cksum_pos = absolute_input_pos + stream->src->max_winsize / 2; 4398 /* TODO: The addition of 2 blocks here is arbitrary. Do a
4399 * better job of stream alignment based on observed source copy
4400 * addresses, and when both input sizes are known, the
4401 * difference in size.
4402 */
4403 target_cksum_pos = absolute_input_pos +
4404 stream->src->max_winsize / 2 +
4405 /*stream->src->blksize * 2*/;
4399 target_cksum_pos &= ~stream->src->maskby; 4406 target_cksum_pos &= ~stream->src->maskby;
4400 } 4407 }
4401 4408