Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
1. The whole_state struct now keeps an array of window sizes so that
during reconstruction it can use the same window size as the target
delta. The code was previously using dec_tgtlen, which was the window
size of the last target delta window.
2. xd3_merge_copy_source(), which applys a source-copy instruction
during merge was not properly translating target-copy instructions
in the target. The solution here is SLOW and INEFFICIENT, but it at
least allows the tests to pass. A big TODO here is to improve the
algorithm: it has a potentially O(N) recursion for each target-copy
that it sees, and the naive approach also can produce duplicate adds.
|
|
target-copies.
|
|
|
|
|
|
|
|
|
|
|
|
infinite loop in issue 70 is breaking identical-input detection
too.
|
|
|
|
main_merge_arguments and main_merge_output.
|
|
main_merge_arguments and main_merge_output.
|
|
non-blocking API would not make progress, searching for match
on the page boundary and repeatedly asking the application to
get another source block.
This is only a non-blocking issue, glad it's fixed. I'll add
encode_decode_test to my test suite before another release.
|
|
management for xd3_whole_target structures being passed between
arguments-processing and main merge_output function.
|
|
instruction-level rewriting of the input to the output. Hits an
assertion due to target-copies that cross window boundaries--next
step is to fix the output window size to the last input window size.
This fixes an important bug in xd3_choose_instruction, which assumed
that copy instructions were at least four bytes, but this is no longer
the case for merged outputs (at least for the case where window size
changes, which will not be allowed in future).
|
|
|