diff options
Diffstat (limited to 'xdelta3/xdelta3.c')
-rw-r--r-- | xdelta3/xdelta3.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/xdelta3/xdelta3.c b/xdelta3/xdelta3.c index 3223e74..626793c 100644 --- a/xdelta3/xdelta3.c +++ b/xdelta3/xdelta3.c | |||
@@ -1931,6 +1931,8 @@ xd3_getblk (xd3_stream *stream, xoff_t blkno) | |||
1931 | 1931 | ||
1932 | if (source->onblk == source->blksize) | 1932 | if (source->onblk == source->blksize) |
1933 | { | 1933 | { |
1934 | source->frontier_blkno = blkno + 1; | ||
1935 | |||
1934 | IF_DEBUG2 (DP(RINT "[getblk] full source blkno %"Q"u: " | 1936 | IF_DEBUG2 (DP(RINT "[getblk] full source blkno %"Q"u: " |
1935 | "source length unknown %"Q"u\n", | 1937 | "source length unknown %"Q"u\n", |
1936 | blkno, | 1938 | blkno, |
@@ -1938,6 +1940,13 @@ xd3_getblk (xd3_stream *stream, xoff_t blkno) | |||
1938 | } | 1940 | } |
1939 | else | 1941 | else |
1940 | { | 1942 | { |
1943 | source->frontier_blkno = blkno; | ||
1944 | |||
1945 | if (xd3_bytes_on_srcblk (source, blkno) != 0) | ||
1946 | { | ||
1947 | source->frontier_blkno += 1; | ||
1948 | } | ||
1949 | |||
1941 | if (!source->eof_known) | 1950 | if (!source->eof_known) |
1942 | { | 1951 | { |
1943 | IF_DEBUG2 (DP(RINT "[getblk] eof block has %d bytes; " | 1952 | IF_DEBUG2 (DP(RINT "[getblk] eof block has %d bytes; " |
@@ -1947,8 +1956,6 @@ xd3_getblk (xd3_stream *stream, xoff_t blkno) | |||
1947 | source->eof_known = 1; | 1956 | source->eof_known = 1; |
1948 | } | 1957 | } |
1949 | } | 1958 | } |
1950 | |||
1951 | source->frontier_blkno = blkno + 1; | ||
1952 | } | 1959 | } |
1953 | 1960 | ||
1954 | XD3_ASSERT (source->curblk != NULL); | 1961 | XD3_ASSERT (source->curblk != NULL); |
@@ -3700,7 +3707,7 @@ xd3_srcwin_setup (xd3_stream *stream) | |||
3700 | src->srclen = xd3_min (src->srclen, xd3_source_eof(src) - src->srcbase); | 3707 | src->srclen = xd3_min (src->srclen, xd3_source_eof(src) - src->srcbase); |
3701 | } | 3708 | } |
3702 | 3709 | ||
3703 | IF_DEBUG1 (DP(RINT "[srcwin_setup_constrained] base %llu len %llu\n", | 3710 | IF_DEBUG1 (DP(RINT "[srcwin_setup_constrained] base %"Q"u len %u\n", |
3704 | src->srcbase, src->srclen)); | 3711 | src->srcbase, src->srclen)); |
3705 | 3712 | ||
3706 | XD3_ASSERT (src->srclen); | 3713 | XD3_ASSERT (src->srclen); |