Skip to content

0.2.0

Latest

Choose a tag to compare

@ttypic ttypic released this 23 Sep 13:04
764b93b

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 * 256 slots 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 3284 s_same value: the number of 256-slot blocks in the same
    cache rather than a slot count. Code that imported SAME_CACHE_SIZE must switch to
    SAME_CACHE_BLOCKS (multiply by 256 if you need the number of slots)