summaryrefslogtreecommitdiff
path: root/xdelta3/xdelta3.c
AgeCommit message (Collapse)Author
2012-06-16Updates for iOS build, Automake setupjosh.macdonald
2010-11-07Whitespace cleanups, commentsjosh.macdonald
2010-10-25Conditional compile fixes.josh.macdonald
2010-08-01Fixes for win7, especially named pipe handlingjosh.macdonald@gmail.com
2010-02-16Undo recent "off-by-one" fix, it was incorrect (the bug was actuallyjosh.macdonald
the issue about updating the value of xd3_source_eof() in the same change).
2010-02-16Whitespace changes.josh.macdonald
2010-02-16Fix an off-by-one error in srcwin_move_point, and prevent updatingjosh.macdonald
xd3_source_eof () when eof is known in xd3_getblk. Now performance is the same for FIFO and no.
2010-02-16Fixes a memory corruption caused by recent changes (as early as 3.0w, josh.macdonald
it seems).
2010-02-15Misc whitespace changes.josh.macdonald
2010-02-11Running xdelta3-regtest.py. Observed a bug in recently-added josh.macdonald
match-setup code, using source_eof instead of frontier position.
2010-02-07Implement srcwin_maxsz in xd3_source_match_setup(), which preventsjosh.macdonald
the encoder from seeking backwards further than this parameter. This was supposed to be implemented long ago, but was especially problematic in the recent release, which implements source-from-FIFO.
2010-01-06Fixes for gcc-4.2 on OS X 10.6, some comment cleanup.josh.macdonald
2009-11-08Rewrote main_set_source() to delay deciding lru_size (effectivelyjosh.macdonald
option_srcwinsz) until after decompression state is known. Working but definitely needs more testing.
2009-11-05Cleanups in xd3_decode_output_halfinst() and xd3_decode_emit().josh.macdonald
2009-11-03Implement (and manually test) main_getblk_func() using FIFO instead ofjosh.macdonald
LRU for non-seekable sources (always, was not previously for the decoder, which caused problems).
2009-11-03Fixes for issue 94.josh.macdonald
2009-10-28Optimize decode for source copies.josh.macdonald
Add magic number for Xz.
2009-10-26Fix the error message to suggest "try raising -B" when XD3_TOOFARBACK ↵josh.macdonald
happens in decode.
2009-10-26Fix the source_decompression test, which tests that appheader overrides ↵josh.macdonald
compression magic number.
2009-10-26Source from non-seekable input seems to work. Limited testing!josh.macdonald
2009-10-26This fixes main_getblk_func to supposely work with non-seekable inputs, ↵josh.macdonald
we'll see!
2009-10-25Fixes bugs in xd3_srcwin_move_point.josh.macdonald
2009-10-25Test crashes in recode test w/ "allow_fake_source" support, getting close?josh.macdonald
2009-10-25Fix ALT_CODE_TABLE generation code to use xd3_encode/decode_memory(), a josh.macdonald
long-standing TODO.
2009-10-25Adds xd3_set_source_and_size.josh.macdonald
2009-10-25Eliminates xd3_source->size, which is an _API Change_. Adds a new ↵josh.macdonald
requirement, that source->blocksize be a power-of-2. DOES NOT PASS ALL TESTS.
2009-10-24Move and re-invigorate the regtest, fix 1 harmless compiler warningjosh.macdonald
2009-03-08Testing for issue 79. TODO around xdelta3.c:3926 successful.josh.macdonald
2009-02-12Fixes issue 79, adds more testing.josh.macdonald
2008-09-17Compile with josh.macdonald
-Wconversion -Wsign-compare -Wextra -Wno-unused-parameter in C and C++.
2008-09-13Implement adler32 and appheader for merge command.josh.macdonald
2008-09-07Fixes two merge bugs:josh.macdonald
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.
2008-07-10Adds a test for the fix for issue 70. The new regression testjosh.macdonald
framework's ability to craft specific inputs is very handy.
2008-07-08Add testing for move/copy mutators.josh.macdonald
2008-07-03Test for encode/decode w/ single first-byte difference. Uncovered a couple ofjosh.macdonald
incorrect assertions in xdelta3 proper. More tests coming...
2008-04-22Install a proper fix for the looping problem in issue 70. Needs better testingjosh.macdonald
but good for now.
2008-04-19Straighten up the logic for calling xd3_merge_inputs in both josh.macdonald
main_merge_arguments and main_merge_output.
2008-04-15Fixes for issue 70. The test inputs tickled a case where thejosh.macdonald
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.
2008-04-09Add mechanism for processing merge arguments in order, memoryjosh.macdonald
management for xd3_whole_target structures being passed between arguments-processing and main merge_output function.
2008-04-02Merge command passes its first smoke test, reproduces a delta byjosh.macdonald
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).
2008-03-31Implement more of "xdelta3 merge" command. Compile fixes.josh.macdonald
Work on xdelta3-regtest.py.
2008-02-11Can't explain how the usize_t->uint32_t changes here solve the problemjosh.macdonald
described by issue 61, but it's likely the same as issue 66 and I'm going to apply them blindly with TODOs to try and understand it later.
2007-12-28Fixes issue 58. Incorrect looping condition in xd3_smatch() causedjosh.macdonald
checking for matches with incorrect checksums, detected by debug builds. This also improves speed slightly and potentially degrades compression where the sprevsz array had spurious matches beyond its actual coverage.
2007-12-27Adding more support for "merge" command.josh.macdonald
2007-12-17Call main_input() recursively for main_merge_arguments.josh.macdonald
2007-12-15Compile on OS X, better implementation of UNALIGNED_OK=0 small checksum.josh.macdonald
2007-12-14Fix a few more uint uses.josh.macdonald
2007-12-14Replace uint with usize_t, more portable.josh.macdonald
2007-12-14Implement UNALIGNED_OK for xd3_small_cksum_update, hoping to fix josh.macdonald
test failure on Xscale/ARM platform.
2007-12-13A few cleanups -- xd3_scksum should have been using uint32_t, but Ijosh.macdonald
doubt that is the real problem. I suspect the problem on ARM/Xscale has to do with unaligned access issues.