Repository navigation
Fixed
- The near address cache no longer rejects a slot holding address 0. RFC 3284 section 5.1 zero
fills both caches at the start of a window, so 0 is an ordinary cached address, and a COPY
addressed against it (a copy from the start of the source, for instance) raised
"near cache slot N is uninitialized" instead of decoding
#692 - The same address cache is now sized and indexed consistently. It was allocated with
s_same * 256 * 256slots while being read at(mode - 6) * 256 + byte, so every address at or
above 768 was stored where no read could reach it and resolved to address 0, silently producing
the wrong output for deltas that use same modes
#692
Breaking changes
These affect only code that imports the internal modules directly. The public API exported from
vcdiff_decoder (decode, Decoder, parse_delta and the exception types) is unchanged.
vcdiff_decoder.types.SAME_CACHE_SIZE(3 * 256) is removed and replaced by
SAME_CACHE_BLOCKS(3), the RFC 3284s_samevalue: the number of 256-slot blocks in the same
cache rather than a slot count. Code that importedSAME_CACHE_SIZEmust switch to
SAME_CACHE_BLOCKS(multiply by 256 if you need the number of slots)