]> wimlib.net Git - wimlib/log
wimlib
9 years agoAdjust naming of (de)compression files
Eric Biggers [Fri, 26 Dec 2014 20:16:44 +0000 (14:16 -0600)]
Adjust naming of (de)compression files

9 years agoLZMS: decompression optimizations
Eric Biggers [Fri, 26 Dec 2014 16:56:16 +0000 (10:56 -0600)]
LZMS: decompression optimizations

9 years agoLZMS: optimize lzms_x86_filter()
Eric Biggers [Thu, 25 Dec 2014 02:33:49 +0000 (20:33 -0600)]
LZMS: optimize lzms_x86_filter()

9 years agoresource.c: Don't manually align buffer for uncompressed data
Eric Biggers [Thu, 25 Dec 2014 02:06:42 +0000 (20:06 -0600)]
resource.c: Don't manually align buffer for uncompressed data

The main reason this was being done was to speed up LZX postprocessing,
but that now can use the vectorized version (with a tiny bit of overhead)
even if the start of the buffer is not 16-byte aligned.

9 years agoLZX pre/post-processing improvements
Eric Biggers [Thu, 25 Dec 2014 01:58:04 +0000 (19:58 -0600)]
LZX pre/post-processing improvements

- much faster inner loop for non-vectorized version
- use either SSE2 or AVX-2 for vectorized version
- faster inner loop for vectorized version
- support vectorized version on buffers that are not properly aligned

9 years agomake-windows-release: get version number from configure.ac, not README
Eric Biggers [Tue, 23 Dec 2014 19:07:32 +0000 (13:07 -0600)]
make-windows-release: get version number from configure.ac, not README

9 years agoFaster XPRESS compression
Eric Biggers [Tue, 23 Dec 2014 05:16:38 +0000 (23:16 -0600)]
Faster XPRESS compression

9 years agotools/windeps/Makefile: update sources list
Eric Biggers [Fri, 19 Dec 2014 23:44:02 +0000 (17:44 -0600)]
tools/windeps/Makefile: update sources list

9 years agomkwinpeimg.1: missed an autoconf substitution
Eric Biggers [Fri, 19 Dec 2014 05:01:16 +0000 (23:01 -0600)]
mkwinpeimg.1: missed an autoconf substitution

9 years agoWindows build updates
Eric Biggers [Fri, 19 Dec 2014 03:38:48 +0000 (21:38 -0600)]
Windows build updates

9 years agoAdd ax_pthread.m4
Eric Biggers [Tue, 16 Dec 2014 05:50:04 +0000 (23:50 -0600)]
Add ax_pthread.m4

9 years agoconfigure.ac cleanup
Eric Biggers [Tue, 16 Dec 2014 04:55:03 +0000 (22:55 -0600)]
configure.ac cleanup

9 years agoMakefile.am cleanup
Eric Biggers [Tue, 16 Dec 2014 02:55:53 +0000 (20:55 -0600)]
Makefile.am cleanup

9 years agoutf16le_dupz() input may be misaligned
Eric Biggers [Tue, 16 Dec 2014 02:33:59 +0000 (20:33 -0600)]
utf16le_dupz() input may be misaligned

9 years agoDon't run man pages through configure
Eric Biggers [Tue, 16 Dec 2014 01:45:49 +0000 (19:45 -0600)]
Don't run man pages through configure

The only remaining reason is to update the version number, but there is
already a sed command being run to update all the dates.  So we might as
well simplify by just having the unmodified man pages.

9 years agoRemove support for --with-imagex-progname configure option
Eric Biggers [Tue, 16 Dec 2014 01:25:36 +0000 (19:25 -0600)]
Remove support for --with-imagex-progname configure option

The program is always called "wimlib-imagex" now.  I expect no one is
using the configuration option, and nothing stops the user from renaming
the binary anyway.

9 years agoRemove support for --enable-more-assertions configure option
Eric Biggers [Tue, 16 Dec 2014 00:20:29 +0000 (18:20 -0600)]
Remove support for --enable-more-assertions configure option

The only uses of wimlib_assert2() were in compression code (where
problems are relatively easy to detect), and this option was disabled by
default anyway.  Simplify by just having one kind of assertion.

9 years agoENABLE_MORE_DEBUG no longer exists
Eric Biggers [Tue, 16 Dec 2014 00:10:39 +0000 (18:10 -0600)]
ENABLE_MORE_DEBUG no longer exists

9 years agoinode.h, inode.c cleanup
Eric Biggers [Sun, 14 Dec 2014 21:03:40 +0000 (15:03 -0600)]
inode.h, inode.c cleanup

9 years agoClean up util.h and util.c
Eric Biggers [Sun, 14 Dec 2014 19:51:40 +0000 (13:51 -0600)]
Clean up util.h and util.c

- Move logging/error code into new file error.c
- Remove ZERO_ARRAY()
- Move path separator macros into paths.h
- Comment improvements
- Remove support for undocumented WIMLIB_DEBUG environmental variable

9 years agoHeader fixes
Eric Biggers [Sun, 14 Dec 2014 19:43:09 +0000 (13:43 -0600)]
Header fixes

9 years agoreference.c: correct rollback in error paths
Eric Biggers [Sun, 14 Dec 2014 18:05:52 +0000 (12:05 -0600)]
reference.c: correct rollback in error paths

previous implementation had several problems:

- use of 'out_refcnt' was wrong (it wasn't guaranteed to be 0 beforehand)
- globs were rolled back individually, not together

This commit correctly implements full rollback for both
wimlib_reference_resources() and wimlib_reference_resource_files().

9 years agoupdate_image.c: Add file comment
Eric Biggers [Sun, 14 Dec 2014 05:55:29 +0000 (23:55 -0600)]
update_image.c: Add file comment

9 years agoGet rid of wimlib/version.h
Eric Biggers [Sun, 14 Dec 2014 04:38:18 +0000 (22:38 -0600)]
Get rid of wimlib/version.h

9 years agoCleanup timestamp conversion code
Eric Biggers [Sun, 14 Dec 2014 03:26:06 +0000 (21:26 -0600)]
Cleanup timestamp conversion code

9 years agotagged_items.c: length should be rounded up when adding item
Eric Biggers [Sun, 14 Dec 2014 01:40:02 +0000 (19:40 -0600)]
tagged_items.c: length should be rounded up when adding item

Also 0-fill the new item, including the padding.

These changes have no effect on the only caller of
inode_add_tagged_item() but should be made for correctness in case this
function gets more callers in the future.

9 years agowim.h: reorganize WIMStruct fields and update comments
Eric Biggers [Sun, 14 Dec 2014 00:05:56 +0000 (18:05 -0600)]
wim.h: reorganize WIMStruct fields and update comments

9 years agonew internal image deletion helper
Eric Biggers [Sat, 13 Dec 2014 19:38:31 +0000 (13:38 -0600)]
new internal image deletion helper

Define a new helper function delete_wim_image() and use in
wimlib_delete_image() and in the error path of
wimlib_add_image_multisource().

This fixes a bug: current_image wasn't being reset to WIMLIB_NO_IMAGE in
the error path of wimlib_add_image_multisource().  Bad things would
happen if the library user then continued to use the same WIMStruct.

9 years agoexport_image.c: adjust error message
Eric Biggers [Sat, 13 Dec 2014 19:21:48 +0000 (13:21 -0600)]
export_image.c: adjust error message

9 years agoWIMStruct: Rename 'deletion_occurred' to 'image_deletion_occurred'
Eric Biggers [Sat, 13 Dec 2014 19:20:19 +0000 (13:20 -0600)]
WIMStruct: Rename 'deletion_occurred' to 'image_deletion_occurred'

9 years agoinode_fixup.h: remove unnecessary #include
Eric Biggers [Sat, 13 Dec 2014 19:17:12 +0000 (13:17 -0600)]
inode_fixup.h: remove unnecessary #include

9 years agolz_extend: little endian CPU is necessary for byte count to work
Eric Biggers [Thu, 11 Dec 2014 01:45:07 +0000 (19:45 -0600)]
lz_extend: little endian CPU is necessary for byte count to work

9 years agoAnnotate yet another unaligned memory access
Eric Biggers [Thu, 11 Dec 2014 01:14:40 +0000 (19:14 -0600)]
Annotate yet another unaligned memory access

9 years agoUpdate version to v1.7.4-BETA
Eric Biggers [Wed, 10 Dec 2014 04:53:21 +0000 (22:53 -0600)]
Update version to v1.7.4-BETA

9 years agoportability and compression cleanups
Eric Biggers [Wed, 10 Dec 2014 01:40:17 +0000 (19:40 -0600)]
portability and compression cleanups

- Split compiler.h into compiler.h and compiler-gcc.h
- Compile with -std=c99. Some GCC extensions are still used but they are
  explicitly defined in compiler-gcc.h.
- Add get_unaligned_uXX_le() and put_unaligned_uXX_le() helpers
- Faster lz_copy() in some cases
- Faster lz_extend() in some cases
- New bitops.h header

9 years agocleanups
Eric Biggers [Sat, 6 Dec 2014 17:42:37 +0000 (11:42 -0600)]
cleanups

9 years agoWorkaround for FILE_SUPERSEDE being broken in Windows PE ramdisk
Eric Biggers [Wed, 26 Nov 2014 04:26:29 +0000 (22:26 -0600)]
Workaround for FILE_SUPERSEDE being broken in Windows PE ramdisk

9 years agoAdd some missing config.h includes
Eric Biggers [Sat, 22 Nov 2014 04:02:15 +0000 (22:02 -0600)]
Add some missing config.h includes

9 years agolzms-compress.c: Remove unused function
Eric Biggers [Sat, 22 Nov 2014 03:59:39 +0000 (21:59 -0600)]
lzms-compress.c: Remove unused function

9 years agomount_image.c: Replace use of zero-length array
Eric Biggers [Sat, 22 Nov 2014 03:42:35 +0000 (21:42 -0600)]
mount_image.c: Replace use of zero-length array

9 years agoRemove unused 'wim' argument to read_metadata_resource()
Eric Biggers [Sat, 22 Nov 2014 03:40:05 +0000 (21:40 -0600)]
Remove unused 'wim' argument to read_metadata_resource()

9 years agolist.h cleanup
Eric Biggers [Sat, 22 Nov 2014 03:17:02 +0000 (21:17 -0600)]
list.h cleanup

9 years agoUse quote includes for all internal headers
Eric Biggers [Sat, 22 Nov 2014 03:03:01 +0000 (21:03 -0600)]
Use quote includes for all internal headers

9 years agosha1.c: Annotate potential unaligned memory accesses in sha1_final()
Eric Biggers [Thu, 20 Nov 2014 03:43:21 +0000 (21:43 -0600)]
sha1.c: Annotate potential unaligned memory accesses in sha1_final()

9 years agolookup_table.c: Annotate potential unaligned memory access in lookup_stream()
Eric Biggers [Thu, 20 Nov 2014 03:41:37 +0000 (21:41 -0600)]
lookup_table.c: Annotate potential unaligned memory access in lookup_stream()

9 years agowimlib.h: Fix error in wimlib_get_version() documentation
Eric Biggers [Sat, 15 Nov 2014 16:13:00 +0000 (10:13 -0600)]
wimlib.h: Fix error in wimlib_get_version() documentation

9 years agov1.7.3 v1.7.3
Eric Biggers [Fri, 14 Nov 2014 00:12:23 +0000 (18:12 -0600)]
v1.7.3

9 years agoSilence compiler warning in make_huffman_decode_table()
Eric Biggers [Tue, 11 Nov 2014 00:34:25 +0000 (18:34 -0600)]
Silence compiler warning in make_huffman_decode_table()

9 years agoLZX, LZMS: Annotate unaligned memory accesses in x86 filtering
Eric Biggers [Tue, 11 Nov 2014 00:10:41 +0000 (18:10 -0600)]
LZX, LZMS: Annotate unaligned memory accesses in x86 filtering

9 years agowimlib_export_image(): cleanups and fixes for rollback
Eric Biggers [Fri, 7 Nov 2014 00:50:18 +0000 (18:50 -0600)]
wimlib_export_image(): cleanups and fixes for rollback

- rollback setting of wimboot flag correctly (actually, don't even set it
  until we've succeeded)
- on rollback, free wim_lookup_table_entries in the destination if and
  only if they were exported.  Before it was possible for one to be freed
  if it happened to have had 0 reference count before.

9 years agowimlib_set_image_name(): Allow multiple images with empty name
Eric Biggers [Fri, 7 Nov 2014 00:44:54 +0000 (18:44 -0600)]
wimlib_set_image_name(): Allow multiple images with empty name

9 years agoFix for rewriting uncompressed resources when exporting from solid WIM
Eric Biggers [Wed, 5 Nov 2014 01:25:55 +0000 (19:25 -0600)]
Fix for rewriting uncompressed resources when exporting from solid WIM

The changes from commit 1ba2a3422b ("Workaround for WOF incompatibility")
are resulting in excessive, expensive decompressions when exporting small
incompressible files from solid blocks.  For now, add an optimization for
single chunk resources which prevents this common case from triggering
the degenerate behavior.

9 years agoRemove "memory exhausted" error messages
Eric Biggers [Sun, 26 Oct 2014 23:47:12 +0000 (18:47 -0500)]
Remove "memory exhausted" error messages

Calling code checks for NULL returns anyway, and in the case of
allocating chunk compressors there is a fallback so there shouldn't
be an error message.

9 years agowrite.c: Warn when falling back to single-threaded compression
Eric Biggers [Sun, 26 Oct 2014 23:50:49 +0000 (18:50 -0500)]
write.c: Warn when falling back to single-threaded compression

9 years agowin32_get_avail_memory(): Report 85% of minimum of virtual and physical memory
Eric Biggers [Sun, 26 Oct 2014 23:55:44 +0000 (18:55 -0500)]
win32_get_avail_memory(): Report 85% of minimum of virtual and physical memory

This should be a better prediction of how much memory can actually be
allocated.

9 years agoUpdate NEWS
Eric Biggers [Sat, 25 Oct 2014 18:13:21 +0000 (13:13 -0500)]
Update NEWS

9 years agoAdd warning messages and retries around FSCTL_SET_EXTERNAL_BACKING
Eric Biggers [Sat, 25 Oct 2014 16:28:03 +0000 (11:28 -0500)]
Add warning messages and retries around FSCTL_SET_EXTERNAL_BACKING

9 years agoDon't use the old ADD_IMAGE flag names
Eric Biggers [Sat, 25 Oct 2014 00:25:49 +0000 (19:25 -0500)]
Don't use the old ADD_IMAGE flag names

9 years agoRename add_image_params => capture_params
Eric Biggers [Sat, 25 Oct 2014 00:19:47 +0000 (19:19 -0500)]
Rename add_image_params => capture_params

9 years agoReport some extraction errors on Windows
Eric Biggers [Wed, 22 Oct 2014 03:19:11 +0000 (22:19 -0500)]
Report some extraction errors on Windows

9 years agoReport directory tree scan errors
Eric Biggers [Wed, 22 Oct 2014 03:18:05 +0000 (22:18 -0500)]
Report directory tree scan errors

9 years agoAdd WIMLIB_PROGRESS_MSG_HANDLE_ERROR
Eric Biggers [Wed, 22 Oct 2014 03:17:30 +0000 (22:17 -0500)]
Add WIMLIB_PROGRESS_MSG_HANDLE_ERROR

9 years agowin32_apply.c: Try to remove/rename conflicting short names
Eric Biggers [Sat, 18 Oct 2014 02:14:18 +0000 (21:14 -0500)]
win32_apply.c: Try to remove/rename conflicting short names

9 years agowimboot.c: Fix format string
Eric Biggers [Wed, 15 Oct 2014 00:00:17 +0000 (19:00 -0500)]
wimboot.c: Fix format string

9 years agoUpdate NEWS
Eric Biggers [Tue, 14 Oct 2014 04:24:02 +0000 (23:24 -0500)]
Update NEWS

9 years agowin32_apply.c: Match PrepopulateList patterns against all inode aliases
Eric Biggers [Tue, 14 Oct 2014 03:18:35 +0000 (22:18 -0500)]
win32_apply.c:  Match PrepopulateList patterns against all inode aliases

9 years agowin32_apply.c: Never externally back extracted SYSTEM registry files
Eric Biggers [Tue, 14 Oct 2014 03:10:27 +0000 (22:10 -0500)]
win32_apply.c: Never externally back extracted SYSTEM registry files

9 years agowimboot.c: Dynamically size extents and drive_info arrays
Eric Biggers [Tue, 14 Oct 2014 02:26:40 +0000 (21:26 -0500)]
wimboot.c:  Dynamically size extents and drive_info arrays

I figured a limit of 8 partitions is good enough, but for some reason
Windows returns 4 times as many partitions as there actually are.
Whatever, just remove the fixed limit.

9 years agoUpdate version to v1.7.3-BETA
Eric Biggers [Tue, 14 Oct 2014 01:36:05 +0000 (20:36 -0500)]
Update version to v1.7.3-BETA

9 years agoLimit can_modify_wim() calls; remove can_delete_from_wim()
Eric Biggers [Tue, 14 Oct 2014 00:42:16 +0000 (19:42 -0500)]
Limit can_modify_wim() calls; remove can_delete_from_wim()

It isn't necessary to check for permission to modify a WIM for in-memory
operations such as wimlib_add_image(), wimlib_update_image(), and
wimlib_delete_image().  It is only when the user attempts to modify an
on-disk WIM file using wimlib_overwrite() --- or when the user explicitly
opens an on-disk WIM file for write access --- that write permissions
need to be checked.

This change prevents the library from getting in the way of "unusual" use
cases, such as making last-minute changes to a WIM before extracting it
even when the underlying file is located on read-only media, which
otherwise are fully supported by the existing code.

Also part of this change is the removal of can_delete_from_wim().  This
function did a lot of work (decompressing each metadata resource) that
usually turns out to be a waste of time.  And it turns out that it really
needs to be called for any 'wimlib_update_command', including "add" and
"rename", because both "add" and "rename" can cause files to be deleted
(specifically, replaced).  But this is gone too far.  Instead, just get
rid of can_delete_from_wim() completely: it's not needed if we retain
0-reference streams when not recalculating reference counts as part of
wimlib_write() anyway.

9 years agov1.7.2 v1.7.2
Eric Biggers [Thu, 2 Oct 2014 23:42:49 +0000 (18:42 -0500)]
v1.7.2

9 years agoWorkaround for WOF incompatibility
Eric Biggers [Sun, 28 Sep 2014 03:55:57 +0000 (22:55 -0500)]
Workaround for WOF incompatibility

If a stream has compressed_size == uncompressed_size, WOF assumes it's
uncompressed.  As a workaround, we need to re-write the stream as uncompressed
if this ever happens.

This requires adjusting the DONE_WITH_FILE messages to be fired after writing
each stream, not after reading each stream.

We also need to loosen the check for whether the input stream is in a solid
block or not.

Finally, this commit also makes the DONE_WITH_FILE messages work in more cases
--- when appending to a WIM, and when the file hashes are already known.

9 years agowimlib-imagex: Don't open base or template WIMs for write access
Eric Biggers [Sat, 27 Sep 2014 22:23:51 +0000 (17:23 -0500)]
wimlib-imagex: Don't open base or template WIMs for write access

9 years agoUpdate COPYING
Eric Biggers [Sat, 27 Sep 2014 14:39:01 +0000 (09:39 -0500)]
Update COPYING

- Use "or later" clause for GPLv3 and LGPLv3
- Make LGPL exception more general

9 years agoprograms/wgetopt.c: Adjust license to reflect this not being part of the library
Eric Biggers [Sat, 27 Sep 2014 14:38:49 +0000 (09:38 -0500)]
programs/wgetopt.c: Adjust license to reflect this not being part of the library

9 years agoDon't bother with copyright statement in header file
Eric Biggers [Sat, 27 Sep 2014 14:37:35 +0000 (09:37 -0500)]
Don't bother with copyright statement in header file

9 years agoUse LGPLv3+ for src/*.c
Eric Biggers [Sat, 27 Sep 2014 14:37:07 +0000 (09:37 -0500)]
Use LGPLv3+ for src/*.c

9 years agoUpdate NEWS
Eric Biggers [Fri, 26 Sep 2014 04:01:05 +0000 (23:01 -0500)]
Update NEWS

9 years agowin32_{apply,capture}.c: workaround for SACL_SECURITY_INFORMATION quirk
Eric Biggers [Fri, 26 Sep 2014 04:00:32 +0000 (23:00 -0500)]
win32_{apply,capture}.c:  workaround for SACL_SECURITY_INFORMATION quirk

9 years agoUpdate NEWS
Eric Biggers [Fri, 26 Sep 2014 02:11:51 +0000 (21:11 -0500)]
Update NEWS

9 years agocompress_parallel.c: Smarter setting of chunks_per_msg
Eric Biggers [Thu, 25 Sep 2014 04:21:13 +0000 (23:21 -0500)]
compress_parallel.c:  Smarter setting of chunks_per_msg

Useful when compressing small chunks with many threads.

9 years agomake_reparse_data(): No changes until success ensured
Eric Biggers [Thu, 25 Sep 2014 03:46:38 +0000 (22:46 -0500)]
make_reparse_data(): No changes until success ensured

9 years agowin32_capture.c: Random cleanups
Eric Biggers [Thu, 25 Sep 2014 03:41:34 +0000 (22:41 -0500)]
win32_capture.c: Random cleanups

9 years agowin32_apply.c: Add workaround for setting ACL auto-inherit bits
Eric Biggers [Mon, 22 Sep 2014 03:38:53 +0000 (22:38 -0500)]
win32_apply.c: Add workaround for setting ACL auto-inherit bits

9 years agoA few minor compressor cleanups
Eric Biggers [Sun, 21 Sep 2014 20:33:05 +0000 (15:33 -0500)]
A few minor compressor cleanups

9 years agolzx-compress.c: Fix for lazy parsing and multiple blocks
Eric Biggers [Sun, 14 Sep 2014 17:27:16 +0000 (12:27 -0500)]
lzx-compress.c: Fix for lazy parsing and multiple blocks

9 years agoCompression updates
Eric Biggers [Sun, 14 Sep 2014 05:14:07 +0000 (00:14 -0500)]
Compression updates

- Faster searching for repeat offset matches
- Lazy updates of adaptive state in near-optimal parsing
- Faster LZX near-optimal parsing
- Better LZX lazy parsing
- Faster XPRESS near-optimal parsing
- Faster LZMS near-optimal parsing
- Faster LZMS match/literal output
- Slightly faster LZMS decompression
- Cleanups

9 years agowin32_capture.c: Fix format string
Eric Biggers [Mon, 8 Sep 2014 00:10:55 +0000 (19:10 -0500)]
win32_capture.c: Fix format string

9 years agolzx-compress.c: Avoid unnecessary branch in match cost calculation
Eric Biggers [Sun, 7 Sep 2014 05:22:08 +0000 (00:22 -0500)]
lzx-compress.c: Avoid unnecessary branch in match cost calculation

9 years agolzx_write_match(): One-branch check for aligned offset case
Eric Biggers [Sun, 7 Sep 2014 05:01:38 +0000 (00:01 -0500)]
lzx_write_match():  One-branch check for aligned offset case

9 years agolzx-compress.c: Optimize output of compressed Huffman codes
Eric Biggers [Sun, 7 Sep 2014 02:47:47 +0000 (21:47 -0500)]
lzx-compress.c:  Optimize output of compressed Huffman codes

9 years agolzx_decompress_block(): One-branch check for aligned offset case
Eric Biggers [Sun, 7 Sep 2014 01:49:02 +0000 (20:49 -0500)]
lzx_decompress_block():  One-branch check for aligned offset case

9 years agowimverify: Add --nocheck option
Eric Biggers [Sat, 6 Sep 2014 23:25:00 +0000 (18:25 -0500)]
wimverify: Add --nocheck option

9 years agolzx-decompress.c: Optimize lzx_read_codeword_lens()
Eric Biggers [Sat, 6 Sep 2014 22:44:59 +0000 (17:44 -0500)]
lzx-decompress.c: Optimize lzx_read_codeword_lens()

9 years agolzx-decompress.c: Inline and optimize lzx_decode_match()
Eric Biggers [Sat, 6 Sep 2014 21:40:56 +0000 (16:40 -0500)]
lzx-decompress.c: Inline and optimize lzx_decode_match()

9 years agoread_huffsym(): Use 'unsigned' for 'entry' and 'key_bits'
Eric Biggers [Sat, 6 Sep 2014 20:30:34 +0000 (15:30 -0500)]
read_huffsym(): Use 'unsigned' for 'entry' and 'key_bits'

Slight performance improvement.

9 years agoxpress-decompress.c: Performance tweaks
Eric Biggers [Sat, 6 Sep 2014 18:05:43 +0000 (13:05 -0500)]
xpress-decompress.c: Performance tweaks

9 years agoMove XPRESS_TABLEBITS to xpress-decompress.c
Eric Biggers [Sat, 6 Sep 2014 17:40:58 +0000 (12:40 -0500)]
Move XPRESS_TABLEBITS to xpress-decompress.c

9 years agolz_copy(): Unroll first iteration
Eric Biggers [Sat, 6 Sep 2014 16:54:16 +0000 (11:54 -0500)]
lz_copy(): Unroll first iteration

Most matches are short, so 1 iteration is the most common case.
Use separate branch for this.

9 years agolzx-decompress.c: Don't allow using offsets of 0
Eric Biggers [Sat, 6 Sep 2014 06:08:03 +0000 (01:08 -0500)]
lzx-decompress.c: Don't allow using offsets of 0

This can happen if an uncompressed block is present, since then the match
offset LRU queue is filled directly from the input buffer.  Too-large
offsets were already checked later, but offsets of 0 would cause
uninitialized memory to remain in the output buffer.