summaryrefslogtreecommitdiff
path: root/xdelta3/xdelta3.c
diff options
context:
space:
mode:
Diffstat (limited to 'xdelta3/xdelta3.c')
-rw-r--r--xdelta3/xdelta3.c13
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);