node-liblzma 1.0.4 → 1.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/History.md +5 -0
- package/README.md +65 -37
- package/binding.gyp +655 -49
- package/lib/lzma.js +326 -319
- package/package.json +36 -24
- package/prebuilds/darwin-x64/node.napi.node +0 -0
- package/prebuilds/linux-x64/node.napi.node +0 -0
- package/prebuilds/win32-x64/node.napi.node +0 -0
- package/scripts/download_extract_deps.py +29 -0
- package/scripts/prebuildify.py +13 -0
- package/scripts/walk_sources.py +7 -0
- package/.npmignore +0 -1
- package/.travis.yml +0 -35
- package/build/Makefile +0 -329
- package/build/Release/.deps/Release/node-liblzma.node.d +0 -1
- package/build/Release/.deps/Release/obj.target/action_after_build.stamp.d +0 -1
- package/build/Release/.deps/Release/obj.target/node-liblzma/src/bindings/module.o.d +0 -89
- package/build/Release/.deps/Release/obj.target/node-liblzma/src/bindings/node-liblzma.o.d +0 -89
- package/build/Release/.deps/Release/obj.target/node-liblzma.node.d +0 -1
- package/build/Release/.deps/home/o2/dev/node-liblzma/build/node-liblzma.node.d +0 -1
- package/build/Release/node-liblzma.node +0 -0
- package/build/Release/obj.target/action_after_build.stamp +0 -0
- package/build/Release/obj.target/node-liblzma/src/bindings/module.o +0 -0
- package/build/Release/obj.target/node-liblzma/src/bindings/node-liblzma.o +0 -0
- package/build/Release/obj.target/node-liblzma.node +0 -0
- package/build/action_after_build.target.mk +0 -32
- package/build/binding.Makefile +0 -6
- package/build/config.gypi +0 -143
- package/build/node-liblzma.node +0 -0
- package/build/node-liblzma.target.mk +0 -144
- package/build.yml +0 -65
- package/deps/xz/ABOUT-NLS +0 -1327
- package/deps/xz/AUTHORS +0 -27
- package/deps/xz/COPYING +0 -65
- package/deps/xz/COPYING.GPLv2 +0 -339
- package/deps/xz/COPYING.GPLv3 +0 -674
- package/deps/xz/COPYING.LGPLv2.1 +0 -502
- package/deps/xz/ChangeLog +0 -14953
- package/deps/xz/Doxyfile +0 -1234
- package/deps/xz/Doxyfile.in +0 -1234
- package/deps/xz/INSTALL +0 -554
- package/deps/xz/INSTALL.generic +0 -365
- package/deps/xz/Makefile +0 -1067
- package/deps/xz/Makefile.am +0 -109
- package/deps/xz/Makefile.in +0 -1067
- package/deps/xz/NEWS +0 -505
- package/deps/xz/PACKAGERS +0 -231
- package/deps/xz/README +0 -308
- package/deps/xz/THANKS +0 -116
- package/deps/xz/TODO +0 -111
- package/deps/xz/aclocal.m4 +0 -1225
- package/deps/xz/autogen.sh +0 -22
- package/deps/xz/autom4te.cache/output.0 +0 -21751
- package/deps/xz/autom4te.cache/output.1 +0 -21751
- package/deps/xz/autom4te.cache/requests +0 -415
- package/deps/xz/autom4te.cache/traces.0 +0 -6996
- package/deps/xz/autom4te.cache/traces.1 +0 -1783
- package/deps/xz/build-aux/compile +0 -347
- package/deps/xz/build-aux/config.guess +0 -1558
- package/deps/xz/build-aux/config.rpath +0 -672
- package/deps/xz/build-aux/config.sub +0 -1791
- package/deps/xz/build-aux/depcomp +0 -791
- package/deps/xz/build-aux/install-sh +0 -527
- package/deps/xz/build-aux/ltmain.sh +0 -9661
- package/deps/xz/build-aux/manconv.sh +0 -58
- package/deps/xz/build-aux/missing +0 -215
- package/deps/xz/build-aux/version.sh +0 -24
- package/deps/xz/config.h +0 -487
- package/deps/xz/config.h.in +0 -486
- package/deps/xz/config.h.in~ +0 -485
- package/deps/xz/config.log +0 -5446
- package/deps/xz/config.status +0 -2587
- package/deps/xz/configure +0 -21751
- package/deps/xz/configure.ac +0 -842
- package/deps/xz/debug/.deps/crc32.Po +0 -1
- package/deps/xz/debug/.deps/full_flush.Po +0 -1
- package/deps/xz/debug/.deps/hex2bin.Po +0 -1
- package/deps/xz/debug/.deps/known_sizes.Po +0 -1
- package/deps/xz/debug/.deps/memusage.Po +0 -1
- package/deps/xz/debug/.deps/repeat.Po +0 -1
- package/deps/xz/debug/.deps/sync_flush.Po +0 -1
- package/deps/xz/debug/Makefile +0 -691
- package/deps/xz/debug/Makefile.am +0 -30
- package/deps/xz/debug/Makefile.in +0 -691
- package/deps/xz/debug/README +0 -17
- package/deps/xz/debug/crc32.c +0 -39
- package/deps/xz/debug/full_flush.c +0 -103
- package/deps/xz/debug/hex2bin.c +0 -53
- package/deps/xz/debug/known_sizes.c +0 -129
- package/deps/xz/debug/memusage.c +0 -51
- package/deps/xz/debug/repeat.c +0 -36
- package/deps/xz/debug/sync_flush.c +0 -125
- package/deps/xz/debug/translation.bash +0 -100
- package/deps/xz/doc/examples/00_README.txt +0 -31
- package/deps/xz/doc/examples/01_compress_easy.c +0 -297
- package/deps/xz/doc/examples/02_decompress.c +0 -287
- package/deps/xz/doc/examples/03_compress_custom.c +0 -193
- package/deps/xz/doc/examples/04_compress_easy_mt.c +0 -206
- package/deps/xz/doc/examples/Makefile +0 -24
- package/deps/xz/doc/examples_old/xz_pipe_comp.c +0 -127
- package/deps/xz/doc/examples_old/xz_pipe_decomp.c +0 -123
- package/deps/xz/doc/faq.txt +0 -224
- package/deps/xz/doc/history.txt +0 -150
- package/deps/xz/doc/lzma-file-format.txt +0 -166
- package/deps/xz/doc/man/pdf-a4/lzmainfo-a4.pdf +0 -0
- package/deps/xz/doc/man/pdf-a4/xz-a4.pdf +0 -0
- package/deps/xz/doc/man/pdf-a4/xzdec-a4.pdf +0 -0
- package/deps/xz/doc/man/pdf-a4/xzdiff-a4.pdf +0 -0
- package/deps/xz/doc/man/pdf-a4/xzgrep-a4.pdf +0 -0
- package/deps/xz/doc/man/pdf-a4/xzless-a4.pdf +0 -0
- package/deps/xz/doc/man/pdf-a4/xzmore-a4.pdf +0 -0
- package/deps/xz/doc/man/pdf-letter/lzmainfo-letter.pdf +0 -0
- package/deps/xz/doc/man/pdf-letter/xz-letter.pdf +0 -0
- package/deps/xz/doc/man/pdf-letter/xzdec-letter.pdf +0 -0
- package/deps/xz/doc/man/pdf-letter/xzdiff-letter.pdf +0 -0
- package/deps/xz/doc/man/pdf-letter/xzgrep-letter.pdf +0 -0
- package/deps/xz/doc/man/pdf-letter/xzless-letter.pdf +0 -0
- package/deps/xz/doc/man/pdf-letter/xzmore-letter.pdf +0 -0
- package/deps/xz/doc/man/txt/lzmainfo.txt +0 -40
- package/deps/xz/doc/man/txt/xz.txt +0 -1483
- package/deps/xz/doc/man/txt/xzdec.txt +0 -80
- package/deps/xz/doc/man/txt/xzdiff.txt +0 -36
- package/deps/xz/doc/man/txt/xzgrep.txt +0 -39
- package/deps/xz/doc/man/txt/xzless.txt +0 -39
- package/deps/xz/doc/man/txt/xzmore.txt +0 -34
- package/deps/xz/doc/xz-file-format.txt +0 -1150
- package/deps/xz/dos/INSTALL.txt +0 -79
- package/deps/xz/dos/Makefile +0 -147
- package/deps/xz/dos/README.txt +0 -123
- package/deps/xz/dos/config.h +0 -130
- package/deps/xz/extra/7z2lzma/7z2lzma.bash +0 -115
- package/deps/xz/extra/scanlzma/scanlzma.c +0 -84
- package/deps/xz/include/lzma/base.h +0 -654
- package/deps/xz/include/lzma/bcj.h +0 -90
- package/deps/xz/include/lzma/block.h +0 -581
- package/deps/xz/include/lzma/check.h +0 -150
- package/deps/xz/include/lzma/container.h +0 -619
- package/deps/xz/include/lzma/delta.h +0 -77
- package/deps/xz/include/lzma/filter.h +0 -425
- package/deps/xz/include/lzma/hardware.h +0 -64
- package/deps/xz/include/lzma/index.h +0 -682
- package/deps/xz/include/lzma/index_hash.h +0 -107
- package/deps/xz/include/lzma/lzma12.h +0 -420
- package/deps/xz/include/lzma/stream_flags.h +0 -223
- package/deps/xz/include/lzma/version.h +0 -121
- package/deps/xz/include/lzma/vli.h +0 -166
- package/deps/xz/include/lzma.h +0 -321
- package/deps/xz/lib/.deps/getopt.Po +0 -1
- package/deps/xz/lib/.deps/getopt1.Po +0 -1
- package/deps/xz/lib/Makefile +0 -566
- package/deps/xz/lib/Makefile.am +0 -32
- package/deps/xz/lib/Makefile.in +0 -566
- package/deps/xz/lib/getopt.c +0 -1197
- package/deps/xz/lib/getopt.in.h +0 -226
- package/deps/xz/lib/getopt1.c +0 -171
- package/deps/xz/lib/getopt_int.h +0 -131
- package/deps/xz/lib/liblzma.a +0 -0
- package/deps/xz/lib/liblzma.la +0 -41
- package/deps/xz/lib/pkgconfig/liblzma.pc +0 -19
- package/deps/xz/libtool +0 -10221
- package/deps/xz/m4/ax_pthread.m4 +0 -332
- package/deps/xz/m4/codeset.m4 +0 -21
- package/deps/xz/m4/fcntl-o.m4 +0 -81
- package/deps/xz/m4/getopt.m4 +0 -71
- package/deps/xz/m4/gettext.m4 +0 -383
- package/deps/xz/m4/glibc2.m4 +0 -30
- package/deps/xz/m4/glibc21.m4 +0 -30
- package/deps/xz/m4/iconv.m4 +0 -199
- package/deps/xz/m4/intdiv0.m4 +0 -84
- package/deps/xz/m4/intl.m4 +0 -294
- package/deps/xz/m4/intldir.m4 +0 -19
- package/deps/xz/m4/intlmacosx.m4 +0 -51
- package/deps/xz/m4/intmax.m4 +0 -33
- package/deps/xz/m4/inttypes-pri.m4 +0 -36
- package/deps/xz/m4/inttypes_h.m4 +0 -26
- package/deps/xz/m4/lcmessage.m4 +0 -31
- package/deps/xz/m4/lib-ld.m4 +0 -110
- package/deps/xz/m4/lib-link.m4 +0 -774
- package/deps/xz/m4/lib-prefix.m4 +0 -224
- package/deps/xz/m4/libtool.m4 +0 -7997
- package/deps/xz/m4/lock.m4 +0 -37
- package/deps/xz/m4/longlong.m4 +0 -106
- package/deps/xz/m4/ltoptions.m4 +0 -384
- package/deps/xz/m4/ltsugar.m4 +0 -123
- package/deps/xz/m4/ltversion.m4 +0 -23
- package/deps/xz/m4/lt~obsolete.m4 +0 -98
- package/deps/xz/m4/nls.m4 +0 -32
- package/deps/xz/m4/po.m4 +0 -449
- package/deps/xz/m4/posix-shell.m4 +0 -63
- package/deps/xz/m4/printf-posix.m4 +0 -45
- package/deps/xz/m4/progtest.m4 +0 -92
- package/deps/xz/m4/size_max.m4 +0 -75
- package/deps/xz/m4/stdint_h.m4 +0 -26
- package/deps/xz/m4/threadlib.m4 +0 -347
- package/deps/xz/m4/tuklib_common.m4 +0 -22
- package/deps/xz/m4/tuklib_cpucores.m4 +0 -148
- package/deps/xz/m4/tuklib_integer.m4 +0 -74
- package/deps/xz/m4/tuklib_mbstr.m4 +0 -30
- package/deps/xz/m4/tuklib_physmem.m4 +0 -212
- package/deps/xz/m4/tuklib_progname.m4 +0 -25
- package/deps/xz/m4/uintmax_t.m4 +0 -30
- package/deps/xz/m4/visibility.m4 +0 -74
- package/deps/xz/m4/wchar_t.m4 +0 -20
- package/deps/xz/m4/wint_t.m4 +0 -28
- package/deps/xz/m4/xsize.m4 +0 -13
- package/deps/xz/macosx/build.sh +0 -113
- package/deps/xz/po/LINGUAS +0 -6
- package/deps/xz/po/Makefile +0 -549
- package/deps/xz/po/Makefile.in +0 -444
- package/deps/xz/po/Makefile.in.in +0 -444
- package/deps/xz/po/Makevars +0 -46
- package/deps/xz/po/Makevars.template +0 -41
- package/deps/xz/po/POTFILES +0 -12
- package/deps/xz/po/POTFILES.in +0 -13
- package/deps/xz/po/Rules-quot +0 -47
- package/deps/xz/po/boldquot.sed +0 -10
- package/deps/xz/po/cs.gmo +0 -0
- package/deps/xz/po/cs.po +0 -989
- package/deps/xz/po/de.gmo +0 -0
- package/deps/xz/po/de.po +0 -990
- package/deps/xz/po/en@boldquot.header +0 -25
- package/deps/xz/po/en@quot.header +0 -22
- package/deps/xz/po/fr.gmo +0 -0
- package/deps/xz/po/fr.po +0 -974
- package/deps/xz/po/insert-header.sin +0 -23
- package/deps/xz/po/it.gmo +0 -0
- package/deps/xz/po/it.po +0 -975
- package/deps/xz/po/pl.gmo +0 -0
- package/deps/xz/po/pl.po +0 -964
- package/deps/xz/po/quot.sed +0 -6
- package/deps/xz/po/remove-potcdate.sin +0 -19
- package/deps/xz/po/stamp-po +0 -1
- package/deps/xz/po/vi.gmo +0 -0
- package/deps/xz/po/vi.po +0 -970
- package/deps/xz/po/xz.pot +0 -854
- package/deps/xz/share/doc/xz/AUTHORS +0 -27
- package/deps/xz/share/doc/xz/COPYING +0 -65
- package/deps/xz/share/doc/xz/COPYING.GPLv2 +0 -339
- package/deps/xz/share/doc/xz/NEWS +0 -505
- package/deps/xz/share/doc/xz/README +0 -308
- package/deps/xz/share/doc/xz/THANKS +0 -116
- package/deps/xz/share/doc/xz/TODO +0 -111
- package/deps/xz/share/doc/xz/examples/00_README.txt +0 -31
- package/deps/xz/share/doc/xz/examples/01_compress_easy.c +0 -297
- package/deps/xz/share/doc/xz/examples/02_decompress.c +0 -287
- package/deps/xz/share/doc/xz/examples/03_compress_custom.c +0 -193
- package/deps/xz/share/doc/xz/examples/04_compress_easy_mt.c +0 -206
- package/deps/xz/share/doc/xz/examples/Makefile +0 -24
- package/deps/xz/share/doc/xz/examples_old/xz_pipe_comp.c +0 -127
- package/deps/xz/share/doc/xz/examples_old/xz_pipe_decomp.c +0 -123
- package/deps/xz/share/doc/xz/faq.txt +0 -224
- package/deps/xz/share/doc/xz/history.txt +0 -150
- package/deps/xz/share/doc/xz/lzma-file-format.txt +0 -166
- package/deps/xz/share/doc/xz/xz-file-format.txt +0 -1150
- package/deps/xz/share/locale/cs/LC_MESSAGES/xz.mo +0 -0
- package/deps/xz/share/locale/de/LC_MESSAGES/xz.mo +0 -0
- package/deps/xz/share/locale/fr/LC_MESSAGES/xz.mo +0 -0
- package/deps/xz/share/locale/it/LC_MESSAGES/xz.mo +0 -0
- package/deps/xz/share/locale/pl/LC_MESSAGES/xz.mo +0 -0
- package/deps/xz/share/locale/vi/LC_MESSAGES/xz.mo +0 -0
- package/deps/xz/src/Makefile +0 -674
- package/deps/xz/src/Makefile.am +0 -42
- package/deps/xz/src/Makefile.in +0 -674
- package/deps/xz/src/common/common_w32res.rc +0 -50
- package/deps/xz/src/common/mythread.h +0 -521
- package/deps/xz/src/common/sysdefs.h +0 -202
- package/deps/xz/src/common/tuklib_common.h +0 -71
- package/deps/xz/src/common/tuklib_config.h +0 -7
- package/deps/xz/src/common/tuklib_cpucores.c +0 -91
- package/deps/xz/src/common/tuklib_cpucores.h +0 -23
- package/deps/xz/src/common/tuklib_exit.c +0 -57
- package/deps/xz/src/common/tuklib_exit.h +0 -25
- package/deps/xz/src/common/tuklib_gettext.h +0 -44
- package/deps/xz/src/common/tuklib_integer.h +0 -523
- package/deps/xz/src/common/tuklib_mbstr.h +0 -66
- package/deps/xz/src/common/tuklib_mbstr_fw.c +0 -31
- package/deps/xz/src/common/tuklib_mbstr_width.c +0 -64
- package/deps/xz/src/common/tuklib_open_stdxxx.c +0 -57
- package/deps/xz/src/common/tuklib_open_stdxxx.h +0 -23
- package/deps/xz/src/common/tuklib_physmem.c +0 -215
- package/deps/xz/src/common/tuklib_physmem.h +0 -28
- package/deps/xz/src/common/tuklib_progname.c +0 -50
- package/deps/xz/src/common/tuklib_progname.h +0 -32
- package/deps/xz/src/liblzma/.deps/liblzma_la-alone_decoder.Plo +0 -269
- package/deps/xz/src/liblzma/.deps/liblzma_la-alone_encoder.Plo +0 -263
- package/deps/xz/src/liblzma/.deps/liblzma_la-arm.Plo +0 -263
- package/deps/xz/src/liblzma/.deps/liblzma_la-armthumb.Plo +0 -263
- package/deps/xz/src/liblzma/.deps/liblzma_la-auto_decoder.Plo +0 -263
- package/deps/xz/src/liblzma/.deps/liblzma_la-block_buffer_decoder.Plo +0 -261
- package/deps/xz/src/liblzma/.deps/liblzma_la-block_buffer_encoder.Plo +0 -273
- package/deps/xz/src/liblzma/.deps/liblzma_la-block_decoder.Plo +0 -268
- package/deps/xz/src/liblzma/.deps/liblzma_la-block_encoder.Plo +0 -268
- package/deps/xz/src/liblzma/.deps/liblzma_la-block_header_decoder.Plo +0 -263
- package/deps/xz/src/liblzma/.deps/liblzma_la-block_header_encoder.Plo +0 -263
- package/deps/xz/src/liblzma/.deps/liblzma_la-block_util.Plo +0 -260
- package/deps/xz/src/liblzma/.deps/liblzma_la-check.Plo +0 -261
- package/deps/xz/src/liblzma/.deps/liblzma_la-common.Plo +0 -258
- package/deps/xz/src/liblzma/.deps/liblzma_la-crc32_fast.Plo +0 -263
- package/deps/xz/src/liblzma/.deps/liblzma_la-crc32_small.Plo +0 -1
- package/deps/xz/src/liblzma/.deps/liblzma_la-crc32_table.Plo +0 -260
- package/deps/xz/src/liblzma/.deps/liblzma_la-crc32_x86.Plo +0 -1
- package/deps/xz/src/liblzma/.deps/liblzma_la-crc64_fast.Plo +0 -263
- package/deps/xz/src/liblzma/.deps/liblzma_la-crc64_small.Plo +0 -1
- package/deps/xz/src/liblzma/.deps/liblzma_la-crc64_table.Plo +0 -260
- package/deps/xz/src/liblzma/.deps/liblzma_la-crc64_x86.Plo +0 -1
- package/deps/xz/src/liblzma/.deps/liblzma_la-delta_common.Plo +0 -263
- package/deps/xz/src/liblzma/.deps/liblzma_la-delta_decoder.Plo +0 -265
- package/deps/xz/src/liblzma/.deps/liblzma_la-delta_encoder.Plo +0 -265
- package/deps/xz/src/liblzma/.deps/liblzma_la-easy_buffer_encoder.Plo +0 -261
- package/deps/xz/src/liblzma/.deps/liblzma_la-easy_decoder_memusage.Plo +0 -261
- package/deps/xz/src/liblzma/.deps/liblzma_la-easy_encoder.Plo +0 -261
- package/deps/xz/src/liblzma/.deps/liblzma_la-easy_encoder_memusage.Plo +0 -261
- package/deps/xz/src/liblzma/.deps/liblzma_la-easy_preset.Plo +0 -261
- package/deps/xz/src/liblzma/.deps/liblzma_la-fastpos_table.Plo +0 -261
- package/deps/xz/src/liblzma/.deps/liblzma_la-filter_buffer_decoder.Plo +0 -261
- package/deps/xz/src/liblzma/.deps/liblzma_la-filter_buffer_encoder.Plo +0 -261
- package/deps/xz/src/liblzma/.deps/liblzma_la-filter_common.Plo +0 -261
- package/deps/xz/src/liblzma/.deps/liblzma_la-filter_decoder.Plo +0 -283
- package/deps/xz/src/liblzma/.deps/liblzma_la-filter_encoder.Plo +0 -283
- package/deps/xz/src/liblzma/.deps/liblzma_la-filter_flags_decoder.Plo +0 -261
- package/deps/xz/src/liblzma/.deps/liblzma_la-filter_flags_encoder.Plo +0 -261
- package/deps/xz/src/liblzma/.deps/liblzma_la-hardware_cputhreads.Plo +0 -260
- package/deps/xz/src/liblzma/.deps/liblzma_la-hardware_physmem.Plo +0 -260
- package/deps/xz/src/liblzma/.deps/liblzma_la-ia64.Plo +0 -263
- package/deps/xz/src/liblzma/.deps/liblzma_la-index.Plo +0 -262
- package/deps/xz/src/liblzma/.deps/liblzma_la-index_decoder.Plo +0 -266
- package/deps/xz/src/liblzma/.deps/liblzma_la-index_encoder.Plo +0 -268
- package/deps/xz/src/liblzma/.deps/liblzma_la-index_hash.Plo +0 -265
- package/deps/xz/src/liblzma/.deps/liblzma_la-lz_decoder.Plo +0 -261
- package/deps/xz/src/liblzma/.deps/liblzma_la-lz_encoder.Plo +0 -286
- package/deps/xz/src/liblzma/.deps/liblzma_la-lz_encoder_mf.Plo +0 -286
- package/deps/xz/src/liblzma/.deps/liblzma_la-lzma2_decoder.Plo +0 -266
- package/deps/xz/src/liblzma/.deps/liblzma_la-lzma2_encoder.Plo +0 -268
- package/deps/xz/src/liblzma/.deps/liblzma_la-lzma_decoder.Plo +0 -274
- package/deps/xz/src/liblzma/.deps/liblzma_la-lzma_encoder.Plo +0 -285
- package/deps/xz/src/liblzma/.deps/liblzma_la-lzma_encoder_optimum_fast.Plo +0 -300
- package/deps/xz/src/liblzma/.deps/liblzma_la-lzma_encoder_optimum_normal.Plo +0 -303
- package/deps/xz/src/liblzma/.deps/liblzma_la-lzma_encoder_presets.Plo +0 -259
- package/deps/xz/src/liblzma/.deps/liblzma_la-outqueue.Plo +0 -260
- package/deps/xz/src/liblzma/.deps/liblzma_la-powerpc.Plo +0 -263
- package/deps/xz/src/liblzma/.deps/liblzma_la-price_table.Plo +0 -266
- package/deps/xz/src/liblzma/.deps/liblzma_la-sha256.Plo +0 -261
- package/deps/xz/src/liblzma/.deps/liblzma_la-simple_coder.Plo +0 -263
- package/deps/xz/src/liblzma/.deps/liblzma_la-simple_decoder.Plo +0 -263
- package/deps/xz/src/liblzma/.deps/liblzma_la-simple_encoder.Plo +0 -263
- package/deps/xz/src/liblzma/.deps/liblzma_la-sparc.Plo +0 -263
- package/deps/xz/src/liblzma/.deps/liblzma_la-stream_buffer_decoder.Plo +0 -261
- package/deps/xz/src/liblzma/.deps/liblzma_la-stream_buffer_encoder.Plo +0 -261
- package/deps/xz/src/liblzma/.deps/liblzma_la-stream_decoder.Plo +0 -263
- package/deps/xz/src/liblzma/.deps/liblzma_la-stream_encoder.Plo +0 -263
- package/deps/xz/src/liblzma/.deps/liblzma_la-stream_encoder_mt.Plo +0 -273
- package/deps/xz/src/liblzma/.deps/liblzma_la-stream_flags_common.Plo +0 -261
- package/deps/xz/src/liblzma/.deps/liblzma_la-stream_flags_decoder.Plo +0 -261
- package/deps/xz/src/liblzma/.deps/liblzma_la-stream_flags_encoder.Plo +0 -261
- package/deps/xz/src/liblzma/.deps/liblzma_la-tuklib_cpucores.Plo +0 -170
- package/deps/xz/src/liblzma/.deps/liblzma_la-tuklib_physmem.Plo +0 -170
- package/deps/xz/src/liblzma/.deps/liblzma_la-vli_decoder.Plo +0 -258
- package/deps/xz/src/liblzma/.deps/liblzma_la-vli_encoder.Plo +0 -258
- package/deps/xz/src/liblzma/.deps/liblzma_la-vli_size.Plo +0 -258
- package/deps/xz/src/liblzma/.deps/liblzma_la-x86.Plo +0 -263
- package/deps/xz/src/liblzma/.libs/liblzma.a +0 -0
- package/deps/xz/src/liblzma/.libs/liblzma.lai +0 -41
- package/deps/xz/src/liblzma/Makefile +0 -1858
- package/deps/xz/src/liblzma/Makefile.am +0 -122
- package/deps/xz/src/liblzma/Makefile.in +0 -1858
- package/deps/xz/src/liblzma/api/Makefile +0 -608
- package/deps/xz/src/liblzma/api/Makefile.am +0 -23
- package/deps/xz/src/liblzma/api/Makefile.in +0 -608
- package/deps/xz/src/liblzma/api/lzma/base.h +0 -654
- package/deps/xz/src/liblzma/api/lzma/bcj.h +0 -90
- package/deps/xz/src/liblzma/api/lzma/block.h +0 -581
- package/deps/xz/src/liblzma/api/lzma/check.h +0 -150
- package/deps/xz/src/liblzma/api/lzma/container.h +0 -619
- package/deps/xz/src/liblzma/api/lzma/delta.h +0 -77
- package/deps/xz/src/liblzma/api/lzma/filter.h +0 -425
- package/deps/xz/src/liblzma/api/lzma/hardware.h +0 -64
- package/deps/xz/src/liblzma/api/lzma/index.h +0 -682
- package/deps/xz/src/liblzma/api/lzma/index_hash.h +0 -107
- package/deps/xz/src/liblzma/api/lzma/lzma12.h +0 -420
- package/deps/xz/src/liblzma/api/lzma/stream_flags.h +0 -223
- package/deps/xz/src/liblzma/api/lzma/version.h +0 -121
- package/deps/xz/src/liblzma/api/lzma/vli.h +0 -166
- package/deps/xz/src/liblzma/api/lzma.h +0 -321
- package/deps/xz/src/liblzma/check/Makefile.inc +0 -53
- package/deps/xz/src/liblzma/check/check.c +0 -174
- package/deps/xz/src/liblzma/check/check.h +0 -162
- package/deps/xz/src/liblzma/check/crc32_fast.c +0 -82
- package/deps/xz/src/liblzma/check/crc32_small.c +0 -61
- package/deps/xz/src/liblzma/check/crc32_table.c +0 -19
- package/deps/xz/src/liblzma/check/crc32_table_be.h +0 -525
- package/deps/xz/src/liblzma/check/crc32_table_le.h +0 -525
- package/deps/xz/src/liblzma/check/crc32_tablegen.c +0 -117
- package/deps/xz/src/liblzma/check/crc32_x86.S +0 -304
- package/deps/xz/src/liblzma/check/crc64_fast.c +0 -72
- package/deps/xz/src/liblzma/check/crc64_small.c +0 -53
- package/deps/xz/src/liblzma/check/crc64_table.c +0 -19
- package/deps/xz/src/liblzma/check/crc64_table_be.h +0 -521
- package/deps/xz/src/liblzma/check/crc64_table_le.h +0 -521
- package/deps/xz/src/liblzma/check/crc64_tablegen.c +0 -88
- package/deps/xz/src/liblzma/check/crc64_x86.S +0 -287
- package/deps/xz/src/liblzma/check/crc_macros.h +0 -30
- package/deps/xz/src/liblzma/check/sha256.c +0 -196
- package/deps/xz/src/liblzma/common/Makefile.inc +0 -76
- package/deps/xz/src/liblzma/common/alone_decoder.c +0 -238
- package/deps/xz/src/liblzma/common/alone_decoder.h +0 -23
- package/deps/xz/src/liblzma/common/alone_encoder.c +0 -157
- package/deps/xz/src/liblzma/common/auto_decoder.c +0 -186
- package/deps/xz/src/liblzma/common/block_buffer_decoder.c +0 -80
- package/deps/xz/src/liblzma/common/block_buffer_encoder.c +0 -337
- package/deps/xz/src/liblzma/common/block_buffer_encoder.h +0 -24
- package/deps/xz/src/liblzma/common/block_decoder.c +0 -252
- package/deps/xz/src/liblzma/common/block_decoder.h +0 -22
- package/deps/xz/src/liblzma/common/block_encoder.c +0 -217
- package/deps/xz/src/liblzma/common/block_encoder.h +0 -47
- package/deps/xz/src/liblzma/common/block_header_decoder.c +0 -124
- package/deps/xz/src/liblzma/common/block_header_encoder.c +0 -132
- package/deps/xz/src/liblzma/common/block_util.c +0 -90
- package/deps/xz/src/liblzma/common/common.c +0 -443
- package/deps/xz/src/liblzma/common/common.h +0 -318
- package/deps/xz/src/liblzma/common/easy_buffer_encoder.c +0 -27
- package/deps/xz/src/liblzma/common/easy_decoder_memusage.c +0 -24
- package/deps/xz/src/liblzma/common/easy_encoder.c +0 -24
- package/deps/xz/src/liblzma/common/easy_encoder_memusage.c +0 -24
- package/deps/xz/src/liblzma/common/easy_preset.c +0 -27
- package/deps/xz/src/liblzma/common/easy_preset.h +0 -32
- package/deps/xz/src/liblzma/common/filter_buffer_decoder.c +0 -88
- package/deps/xz/src/liblzma/common/filter_buffer_encoder.c +0 -55
- package/deps/xz/src/liblzma/common/filter_common.c +0 -337
- package/deps/xz/src/liblzma/common/filter_common.h +0 -48
- package/deps/xz/src/liblzma/common/filter_decoder.c +0 -184
- package/deps/xz/src/liblzma/common/filter_decoder.h +0 -23
- package/deps/xz/src/liblzma/common/filter_encoder.c +0 -286
- package/deps/xz/src/liblzma/common/filter_encoder.h +0 -27
- package/deps/xz/src/liblzma/common/filter_flags_decoder.c +0 -46
- package/deps/xz/src/liblzma/common/filter_flags_encoder.c +0 -56
- package/deps/xz/src/liblzma/common/hardware_cputhreads.c +0 -22
- package/deps/xz/src/liblzma/common/hardware_physmem.c +0 -25
- package/deps/xz/src/liblzma/common/index.c +0 -1246
- package/deps/xz/src/liblzma/common/index.h +0 -73
- package/deps/xz/src/liblzma/common/index_decoder.c +0 -345
- package/deps/xz/src/liblzma/common/index_encoder.c +0 -254
- package/deps/xz/src/liblzma/common/index_encoder.h +0 -23
- package/deps/xz/src/liblzma/common/index_hash.c +0 -334
- package/deps/xz/src/liblzma/common/memcmplen.h +0 -175
- package/deps/xz/src/liblzma/common/outqueue.c +0 -184
- package/deps/xz/src/liblzma/common/outqueue.h +0 -156
- package/deps/xz/src/liblzma/common/stream_buffer_decoder.c +0 -91
- package/deps/xz/src/liblzma/common/stream_buffer_encoder.c +0 -141
- package/deps/xz/src/liblzma/common/stream_decoder.c +0 -462
- package/deps/xz/src/liblzma/common/stream_decoder.h +0 -22
- package/deps/xz/src/liblzma/common/stream_encoder.c +0 -332
- package/deps/xz/src/liblzma/common/stream_encoder_mt.c +0 -1131
- package/deps/xz/src/liblzma/common/stream_flags_common.c +0 -47
- package/deps/xz/src/liblzma/common/stream_flags_common.h +0 -33
- package/deps/xz/src/liblzma/common/stream_flags_decoder.c +0 -82
- package/deps/xz/src/liblzma/common/stream_flags_encoder.c +0 -86
- package/deps/xz/src/liblzma/common/vli_decoder.c +0 -86
- package/deps/xz/src/liblzma/common/vli_encoder.c +0 -69
- package/deps/xz/src/liblzma/common/vli_size.c +0 -30
- package/deps/xz/src/liblzma/delta/Makefile.inc +0 -23
- package/deps/xz/src/liblzma/delta/delta_common.c +0 -70
- package/deps/xz/src/liblzma/delta/delta_common.h +0 -20
- package/deps/xz/src/liblzma/delta/delta_decoder.c +0 -76
- package/deps/xz/src/liblzma/delta/delta_decoder.h +0 -26
- package/deps/xz/src/liblzma/delta/delta_encoder.c +0 -121
- package/deps/xz/src/liblzma/delta/delta_encoder.h +0 -24
- package/deps/xz/src/liblzma/delta/delta_private.h +0 -37
- package/deps/xz/src/liblzma/liblzma.la +0 -41
- package/deps/xz/src/liblzma/liblzma.map +0 -108
- package/deps/xz/src/liblzma/liblzma.pc +0 -19
- package/deps/xz/src/liblzma/liblzma.pc.in +0 -19
- package/deps/xz/src/liblzma/liblzma_la-alone_decoder.lo +0 -12
- package/deps/xz/src/liblzma/liblzma_la-alone_decoder.o +0 -0
- package/deps/xz/src/liblzma/liblzma_la-alone_encoder.lo +0 -12
- package/deps/xz/src/liblzma/liblzma_la-alone_encoder.o +0 -0
- package/deps/xz/src/liblzma/liblzma_la-arm.lo +0 -12
- package/deps/xz/src/liblzma/liblzma_la-arm.o +0 -0
- package/deps/xz/src/liblzma/liblzma_la-armthumb.lo +0 -12
- package/deps/xz/src/liblzma/liblzma_la-armthumb.o +0 -0
- package/deps/xz/src/liblzma/liblzma_la-auto_decoder.lo +0 -12
- package/deps/xz/src/liblzma/liblzma_la-auto_decoder.o +0 -0
- package/deps/xz/src/liblzma/liblzma_la-block_buffer_decoder.lo +0 -12
- package/deps/xz/src/liblzma/liblzma_la-block_buffer_decoder.o +0 -0
- package/deps/xz/src/liblzma/liblzma_la-block_buffer_encoder.lo +0 -12
- package/deps/xz/src/liblzma/liblzma_la-block_buffer_encoder.o +0 -0
- package/deps/xz/src/liblzma/liblzma_la-block_decoder.lo +0 -12
- package/deps/xz/src/liblzma/liblzma_la-block_decoder.o +0 -0
- package/deps/xz/src/liblzma/liblzma_la-block_encoder.lo +0 -12
- package/deps/xz/src/liblzma/liblzma_la-block_encoder.o +0 -0
- package/deps/xz/src/liblzma/liblzma_la-block_header_decoder.lo +0 -12
- package/deps/xz/src/liblzma/liblzma_la-block_header_decoder.o +0 -0
- package/deps/xz/src/liblzma/liblzma_la-block_header_encoder.lo +0 -12
- package/deps/xz/src/liblzma/liblzma_la-block_header_encoder.o +0 -0
- package/deps/xz/src/liblzma/liblzma_la-block_util.lo +0 -12
- package/deps/xz/src/liblzma/liblzma_la-block_util.o +0 -0
- package/deps/xz/src/liblzma/liblzma_la-check.lo +0 -12
- package/deps/xz/src/liblzma/liblzma_la-check.o +0 -0
- package/deps/xz/src/liblzma/liblzma_la-common.lo +0 -12
- package/deps/xz/src/liblzma/liblzma_la-common.o +0 -0
- package/deps/xz/src/liblzma/liblzma_la-crc32_fast.lo +0 -12
- package/deps/xz/src/liblzma/liblzma_la-crc32_fast.o +0 -0
- package/deps/xz/src/liblzma/liblzma_la-crc32_table.lo +0 -12
- package/deps/xz/src/liblzma/liblzma_la-crc32_table.o +0 -0
- package/deps/xz/src/liblzma/liblzma_la-crc64_fast.lo +0 -12
- package/deps/xz/src/liblzma/liblzma_la-crc64_fast.o +0 -0
- package/deps/xz/src/liblzma/liblzma_la-crc64_table.lo +0 -12
- package/deps/xz/src/liblzma/liblzma_la-crc64_table.o +0 -0
- package/deps/xz/src/liblzma/liblzma_la-delta_common.lo +0 -12
- package/deps/xz/src/liblzma/liblzma_la-delta_common.o +0 -0
- package/deps/xz/src/liblzma/liblzma_la-delta_decoder.lo +0 -12
- package/deps/xz/src/liblzma/liblzma_la-delta_decoder.o +0 -0
- package/deps/xz/src/liblzma/liblzma_la-delta_encoder.lo +0 -12
- package/deps/xz/src/liblzma/liblzma_la-delta_encoder.o +0 -0
- package/deps/xz/src/liblzma/liblzma_la-easy_buffer_encoder.lo +0 -12
- package/deps/xz/src/liblzma/liblzma_la-easy_buffer_encoder.o +0 -0
- package/deps/xz/src/liblzma/liblzma_la-easy_decoder_memusage.lo +0 -12
- package/deps/xz/src/liblzma/liblzma_la-easy_decoder_memusage.o +0 -0
- package/deps/xz/src/liblzma/liblzma_la-easy_encoder.lo +0 -12
- package/deps/xz/src/liblzma/liblzma_la-easy_encoder.o +0 -0
- package/deps/xz/src/liblzma/liblzma_la-easy_encoder_memusage.lo +0 -12
- package/deps/xz/src/liblzma/liblzma_la-easy_encoder_memusage.o +0 -0
- package/deps/xz/src/liblzma/liblzma_la-easy_preset.lo +0 -12
- package/deps/xz/src/liblzma/liblzma_la-easy_preset.o +0 -0
- package/deps/xz/src/liblzma/liblzma_la-fastpos_table.lo +0 -12
- package/deps/xz/src/liblzma/liblzma_la-fastpos_table.o +0 -0
- package/deps/xz/src/liblzma/liblzma_la-filter_buffer_decoder.lo +0 -12
- package/deps/xz/src/liblzma/liblzma_la-filter_buffer_decoder.o +0 -0
- package/deps/xz/src/liblzma/liblzma_la-filter_buffer_encoder.lo +0 -12
- package/deps/xz/src/liblzma/liblzma_la-filter_buffer_encoder.o +0 -0
- package/deps/xz/src/liblzma/liblzma_la-filter_common.lo +0 -12
- package/deps/xz/src/liblzma/liblzma_la-filter_common.o +0 -0
- package/deps/xz/src/liblzma/liblzma_la-filter_decoder.lo +0 -12
- package/deps/xz/src/liblzma/liblzma_la-filter_decoder.o +0 -0
- package/deps/xz/src/liblzma/liblzma_la-filter_encoder.lo +0 -12
- package/deps/xz/src/liblzma/liblzma_la-filter_encoder.o +0 -0
- package/deps/xz/src/liblzma/liblzma_la-filter_flags_decoder.lo +0 -12
- package/deps/xz/src/liblzma/liblzma_la-filter_flags_decoder.o +0 -0
- package/deps/xz/src/liblzma/liblzma_la-filter_flags_encoder.lo +0 -12
- package/deps/xz/src/liblzma/liblzma_la-filter_flags_encoder.o +0 -0
- package/deps/xz/src/liblzma/liblzma_la-hardware_cputhreads.lo +0 -12
- package/deps/xz/src/liblzma/liblzma_la-hardware_cputhreads.o +0 -0
- package/deps/xz/src/liblzma/liblzma_la-hardware_physmem.lo +0 -12
- package/deps/xz/src/liblzma/liblzma_la-hardware_physmem.o +0 -0
- package/deps/xz/src/liblzma/liblzma_la-ia64.lo +0 -12
- package/deps/xz/src/liblzma/liblzma_la-ia64.o +0 -0
- package/deps/xz/src/liblzma/liblzma_la-index.lo +0 -12
- package/deps/xz/src/liblzma/liblzma_la-index.o +0 -0
- package/deps/xz/src/liblzma/liblzma_la-index_decoder.lo +0 -12
- package/deps/xz/src/liblzma/liblzma_la-index_decoder.o +0 -0
- package/deps/xz/src/liblzma/liblzma_la-index_encoder.lo +0 -12
- package/deps/xz/src/liblzma/liblzma_la-index_encoder.o +0 -0
- package/deps/xz/src/liblzma/liblzma_la-index_hash.lo +0 -12
- package/deps/xz/src/liblzma/liblzma_la-index_hash.o +0 -0
- package/deps/xz/src/liblzma/liblzma_la-lz_decoder.lo +0 -12
- package/deps/xz/src/liblzma/liblzma_la-lz_decoder.o +0 -0
- package/deps/xz/src/liblzma/liblzma_la-lz_encoder.lo +0 -12
- package/deps/xz/src/liblzma/liblzma_la-lz_encoder.o +0 -0
- package/deps/xz/src/liblzma/liblzma_la-lz_encoder_mf.lo +0 -12
- package/deps/xz/src/liblzma/liblzma_la-lz_encoder_mf.o +0 -0
- package/deps/xz/src/liblzma/liblzma_la-lzma2_decoder.lo +0 -12
- package/deps/xz/src/liblzma/liblzma_la-lzma2_decoder.o +0 -0
- package/deps/xz/src/liblzma/liblzma_la-lzma2_encoder.lo +0 -12
- package/deps/xz/src/liblzma/liblzma_la-lzma2_encoder.o +0 -0
- package/deps/xz/src/liblzma/liblzma_la-lzma_decoder.lo +0 -12
- package/deps/xz/src/liblzma/liblzma_la-lzma_decoder.o +0 -0
- package/deps/xz/src/liblzma/liblzma_la-lzma_encoder.lo +0 -12
- package/deps/xz/src/liblzma/liblzma_la-lzma_encoder.o +0 -0
- package/deps/xz/src/liblzma/liblzma_la-lzma_encoder_optimum_fast.lo +0 -12
- package/deps/xz/src/liblzma/liblzma_la-lzma_encoder_optimum_fast.o +0 -0
- package/deps/xz/src/liblzma/liblzma_la-lzma_encoder_optimum_normal.lo +0 -12
- package/deps/xz/src/liblzma/liblzma_la-lzma_encoder_optimum_normal.o +0 -0
- package/deps/xz/src/liblzma/liblzma_la-lzma_encoder_presets.lo +0 -12
- package/deps/xz/src/liblzma/liblzma_la-lzma_encoder_presets.o +0 -0
- package/deps/xz/src/liblzma/liblzma_la-outqueue.lo +0 -12
- package/deps/xz/src/liblzma/liblzma_la-outqueue.o +0 -0
- package/deps/xz/src/liblzma/liblzma_la-powerpc.lo +0 -12
- package/deps/xz/src/liblzma/liblzma_la-powerpc.o +0 -0
- package/deps/xz/src/liblzma/liblzma_la-price_table.lo +0 -12
- package/deps/xz/src/liblzma/liblzma_la-price_table.o +0 -0
- package/deps/xz/src/liblzma/liblzma_la-sha256.lo +0 -12
- package/deps/xz/src/liblzma/liblzma_la-sha256.o +0 -0
- package/deps/xz/src/liblzma/liblzma_la-simple_coder.lo +0 -12
- package/deps/xz/src/liblzma/liblzma_la-simple_coder.o +0 -0
- package/deps/xz/src/liblzma/liblzma_la-simple_decoder.lo +0 -12
- package/deps/xz/src/liblzma/liblzma_la-simple_decoder.o +0 -0
- package/deps/xz/src/liblzma/liblzma_la-simple_encoder.lo +0 -12
- package/deps/xz/src/liblzma/liblzma_la-simple_encoder.o +0 -0
- package/deps/xz/src/liblzma/liblzma_la-sparc.lo +0 -12
- package/deps/xz/src/liblzma/liblzma_la-sparc.o +0 -0
- package/deps/xz/src/liblzma/liblzma_la-stream_buffer_decoder.lo +0 -12
- package/deps/xz/src/liblzma/liblzma_la-stream_buffer_decoder.o +0 -0
- package/deps/xz/src/liblzma/liblzma_la-stream_buffer_encoder.lo +0 -12
- package/deps/xz/src/liblzma/liblzma_la-stream_buffer_encoder.o +0 -0
- package/deps/xz/src/liblzma/liblzma_la-stream_decoder.lo +0 -12
- package/deps/xz/src/liblzma/liblzma_la-stream_decoder.o +0 -0
- package/deps/xz/src/liblzma/liblzma_la-stream_encoder.lo +0 -12
- package/deps/xz/src/liblzma/liblzma_la-stream_encoder.o +0 -0
- package/deps/xz/src/liblzma/liblzma_la-stream_encoder_mt.lo +0 -12
- package/deps/xz/src/liblzma/liblzma_la-stream_encoder_mt.o +0 -0
- package/deps/xz/src/liblzma/liblzma_la-stream_flags_common.lo +0 -12
- package/deps/xz/src/liblzma/liblzma_la-stream_flags_common.o +0 -0
- package/deps/xz/src/liblzma/liblzma_la-stream_flags_decoder.lo +0 -12
- package/deps/xz/src/liblzma/liblzma_la-stream_flags_decoder.o +0 -0
- package/deps/xz/src/liblzma/liblzma_la-stream_flags_encoder.lo +0 -12
- package/deps/xz/src/liblzma/liblzma_la-stream_flags_encoder.o +0 -0
- package/deps/xz/src/liblzma/liblzma_la-tuklib_cpucores.lo +0 -12
- package/deps/xz/src/liblzma/liblzma_la-tuklib_cpucores.o +0 -0
- package/deps/xz/src/liblzma/liblzma_la-tuklib_physmem.lo +0 -12
- package/deps/xz/src/liblzma/liblzma_la-tuklib_physmem.o +0 -0
- package/deps/xz/src/liblzma/liblzma_la-vli_decoder.lo +0 -12
- package/deps/xz/src/liblzma/liblzma_la-vli_decoder.o +0 -0
- package/deps/xz/src/liblzma/liblzma_la-vli_encoder.lo +0 -12
- package/deps/xz/src/liblzma/liblzma_la-vli_encoder.o +0 -0
- package/deps/xz/src/liblzma/liblzma_la-vli_size.lo +0 -12
- package/deps/xz/src/liblzma/liblzma_la-vli_size.o +0 -0
- package/deps/xz/src/liblzma/liblzma_la-x86.lo +0 -12
- package/deps/xz/src/liblzma/liblzma_la-x86.o +0 -0
- package/deps/xz/src/liblzma/liblzma_w32res.rc +0 -12
- package/deps/xz/src/liblzma/lz/Makefile.inc +0 -22
- package/deps/xz/src/liblzma/lz/lz_decoder.c +0 -300
- package/deps/xz/src/liblzma/lz/lz_decoder.h +0 -235
- package/deps/xz/src/liblzma/lz/lz_encoder.c +0 -605
- package/deps/xz/src/liblzma/lz/lz_encoder.h +0 -328
- package/deps/xz/src/liblzma/lz/lz_encoder_hash.h +0 -108
- package/deps/xz/src/liblzma/lz/lz_encoder_hash_table.h +0 -68
- package/deps/xz/src/liblzma/lz/lz_encoder_mf.c +0 -744
- package/deps/xz/src/liblzma/lzma/Makefile.inc +0 -43
- package/deps/xz/src/liblzma/lzma/fastpos.h +0 -141
- package/deps/xz/src/liblzma/lzma/fastpos_table.c +0 -519
- package/deps/xz/src/liblzma/lzma/fastpos_tablegen.c +0 -56
- package/deps/xz/src/liblzma/lzma/lzma2_decoder.c +0 -304
- package/deps/xz/src/liblzma/lzma/lzma2_decoder.h +0 -29
- package/deps/xz/src/liblzma/lzma/lzma2_encoder.c +0 -403
- package/deps/xz/src/liblzma/lzma/lzma2_encoder.h +0 -43
- package/deps/xz/src/liblzma/lzma/lzma_common.h +0 -224
- package/deps/xz/src/liblzma/lzma/lzma_decoder.c +0 -1061
- package/deps/xz/src/liblzma/lzma/lzma_decoder.h +0 -53
- package/deps/xz/src/liblzma/lzma/lzma_encoder.c +0 -676
- package/deps/xz/src/liblzma/lzma/lzma_encoder.h +0 -55
- package/deps/xz/src/liblzma/lzma/lzma_encoder_optimum_fast.c +0 -169
- package/deps/xz/src/liblzma/lzma/lzma_encoder_optimum_normal.c +0 -854
- package/deps/xz/src/liblzma/lzma/lzma_encoder_presets.c +0 -63
- package/deps/xz/src/liblzma/lzma/lzma_encoder_private.h +0 -148
- package/deps/xz/src/liblzma/rangecoder/Makefile.inc +0 -21
- package/deps/xz/src/liblzma/rangecoder/price.h +0 -92
- package/deps/xz/src/liblzma/rangecoder/price_table.c +0 -22
- package/deps/xz/src/liblzma/rangecoder/price_tablegen.c +0 -87
- package/deps/xz/src/liblzma/rangecoder/range_common.h +0 -73
- package/deps/xz/src/liblzma/rangecoder/range_decoder.h +0 -185
- package/deps/xz/src/liblzma/rangecoder/range_encoder.h +0 -231
- package/deps/xz/src/liblzma/simple/Makefile.inc +0 -47
- package/deps/xz/src/liblzma/simple/arm.c +0 -71
- package/deps/xz/src/liblzma/simple/armthumb.c +0 -76
- package/deps/xz/src/liblzma/simple/ia64.c +0 -112
- package/deps/xz/src/liblzma/simple/powerpc.c +0 -75
- package/deps/xz/src/liblzma/simple/simple_coder.c +0 -277
- package/deps/xz/src/liblzma/simple/simple_coder.h +0 -72
- package/deps/xz/src/liblzma/simple/simple_decoder.c +0 -40
- package/deps/xz/src/liblzma/simple/simple_decoder.h +0 -22
- package/deps/xz/src/liblzma/simple/simple_encoder.c +0 -38
- package/deps/xz/src/liblzma/simple/simple_encoder.h +0 -23
- package/deps/xz/src/liblzma/simple/simple_private.h +0 -76
- package/deps/xz/src/liblzma/simple/sparc.c +0 -83
- package/deps/xz/src/liblzma/simple/x86.c +0 -156
- package/deps/xz/src/liblzma/validate_map.sh +0 -68
- package/deps/xz/src/lzmainfo/.deps/lzmainfo-lzmainfo.Po +0 -1
- package/deps/xz/src/lzmainfo/.deps/lzmainfo-tuklib_exit.Po +0 -1
- package/deps/xz/src/lzmainfo/.deps/lzmainfo-tuklib_progname.Po +0 -1
- package/deps/xz/src/lzmainfo/Makefile +0 -802
- package/deps/xz/src/lzmainfo/Makefile.am +0 -39
- package/deps/xz/src/lzmainfo/Makefile.in +0 -802
- package/deps/xz/src/lzmainfo/lzmainfo.1 +0 -60
- package/deps/xz/src/lzmainfo/lzmainfo.c +0 -219
- package/deps/xz/src/lzmainfo/lzmainfo_w32res.rc +0 -12
- package/deps/xz/src/scripts/Makefile +0 -642
- package/deps/xz/src/scripts/Makefile.am +0 -55
- package/deps/xz/src/scripts/Makefile.in +0 -642
- package/deps/xz/src/scripts/xzdiff +0 -200
- package/deps/xz/src/scripts/xzdiff.1 +0 -77
- package/deps/xz/src/scripts/xzdiff.in +0 -200
- package/deps/xz/src/scripts/xzgrep +0 -215
- package/deps/xz/src/scripts/xzgrep.1 +0 -98
- package/deps/xz/src/scripts/xzgrep.in +0 -215
- package/deps/xz/src/scripts/xzless +0 -58
- package/deps/xz/src/scripts/xzless.1 +0 -69
- package/deps/xz/src/scripts/xzless.in +0 -58
- package/deps/xz/src/scripts/xzmore +0 -78
- package/deps/xz/src/scripts/xzmore.1 +0 -55
- package/deps/xz/src/scripts/xzmore.in +0 -78
- package/deps/xz/src/xz/.deps/xz-args.Po +0 -1
- package/deps/xz/src/xz/.deps/xz-coder.Po +0 -1
- package/deps/xz/src/xz/.deps/xz-file_io.Po +0 -1
- package/deps/xz/src/xz/.deps/xz-hardware.Po +0 -1
- package/deps/xz/src/xz/.deps/xz-list.Po +0 -1
- package/deps/xz/src/xz/.deps/xz-main.Po +0 -1
- package/deps/xz/src/xz/.deps/xz-message.Po +0 -1
- package/deps/xz/src/xz/.deps/xz-mytime.Po +0 -1
- package/deps/xz/src/xz/.deps/xz-options.Po +0 -1
- package/deps/xz/src/xz/.deps/xz-signals.Po +0 -1
- package/deps/xz/src/xz/.deps/xz-suffix.Po +0 -1
- package/deps/xz/src/xz/.deps/xz-tuklib_exit.Po +0 -1
- package/deps/xz/src/xz/.deps/xz-tuklib_mbstr_fw.Po +0 -1
- package/deps/xz/src/xz/.deps/xz-tuklib_mbstr_width.Po +0 -1
- package/deps/xz/src/xz/.deps/xz-tuklib_open_stdxxx.Po +0 -1
- package/deps/xz/src/xz/.deps/xz-tuklib_progname.Po +0 -1
- package/deps/xz/src/xz/.deps/xz-util.Po +0 -1
- package/deps/xz/src/xz/Makefile +0 -1066
- package/deps/xz/src/xz/Makefile.am +0 -107
- package/deps/xz/src/xz/Makefile.in +0 -1066
- package/deps/xz/src/xz/args.c +0 -684
- package/deps/xz/src/xz/args.h +0 -44
- package/deps/xz/src/xz/coder.c +0 -919
- package/deps/xz/src/xz/coder.h +0 -76
- package/deps/xz/src/xz/file_io.c +0 -1184
- package/deps/xz/src/xz/file_io.h +0 -150
- package/deps/xz/src/xz/hardware.c +0 -150
- package/deps/xz/src/xz/hardware.h +0 -37
- package/deps/xz/src/xz/list.c +0 -1186
- package/deps/xz/src/xz/list.h +0 -18
- package/deps/xz/src/xz/main.c +0 -307
- package/deps/xz/src/xz/main.h +0 -30
- package/deps/xz/src/xz/message.c +0 -1258
- package/deps/xz/src/xz/message.h +0 -167
- package/deps/xz/src/xz/mytime.c +0 -89
- package/deps/xz/src/xz/mytime.h +0 -47
- package/deps/xz/src/xz/options.c +0 -363
- package/deps/xz/src/xz/options.h +0 -31
- package/deps/xz/src/xz/private.h +0 -59
- package/deps/xz/src/xz/signals.c +0 -209
- package/deps/xz/src/xz/signals.h +0 -43
- package/deps/xz/src/xz/suffix.c +0 -399
- package/deps/xz/src/xz/suffix.h +0 -28
- package/deps/xz/src/xz/util.c +0 -288
- package/deps/xz/src/xz/util.h +0 -123
- package/deps/xz/src/xz/xz.1 +0 -2786
- package/deps/xz/src/xz/xz_w32res.rc +0 -12
- package/deps/xz/src/xzdec/.deps/lzmadec-tuklib_exit.Po +0 -1
- package/deps/xz/src/xzdec/.deps/lzmadec-tuklib_progname.Po +0 -1
- package/deps/xz/src/xzdec/.deps/lzmadec-xzdec.Po +0 -1
- package/deps/xz/src/xzdec/.deps/xzdec-tuklib_exit.Po +0 -1
- package/deps/xz/src/xzdec/.deps/xzdec-tuklib_progname.Po +0 -1
- package/deps/xz/src/xzdec/.deps/xzdec-xzdec.Po +0 -1
- package/deps/xz/src/xzdec/Makefile +0 -901
- package/deps/xz/src/xzdec/Makefile.am +0 -82
- package/deps/xz/src/xzdec/Makefile.in +0 -901
- package/deps/xz/src/xzdec/lzmadec_w32res.rc +0 -12
- package/deps/xz/src/xzdec/xzdec.1 +0 -146
- package/deps/xz/src/xzdec/xzdec.c +0 -323
- package/deps/xz/src/xzdec/xzdec_w32res.rc +0 -12
- package/deps/xz/stamp-h1 +0 -1
- package/deps/xz/tests/.deps/create_compress_files.Po +0 -1
- package/deps/xz/tests/.deps/test_bcj_exact_size.Po +0 -1
- package/deps/xz/tests/.deps/test_block_header.Po +0 -1
- package/deps/xz/tests/.deps/test_check.Po +0 -1
- package/deps/xz/tests/.deps/test_filter_flags.Po +0 -1
- package/deps/xz/tests/.deps/test_index.Po +0 -1
- package/deps/xz/tests/.deps/test_stream_flags.Po +0 -1
- package/deps/xz/tests/Makefile +0 -832
- package/deps/xz/tests/Makefile.am +0 -57
- package/deps/xz/tests/Makefile.in +0 -832
- package/deps/xz/tests/bcj_test.c +0 -65
- package/deps/xz/tests/compress_prepared_bcj_sparc +0 -0
- package/deps/xz/tests/compress_prepared_bcj_x86 +0 -0
- package/deps/xz/tests/create_compress_files.c +0 -158
- package/deps/xz/tests/files/README +0 -240
- package/deps/xz/tests/files/bad-0-backward_size.xz +0 -0
- package/deps/xz/tests/files/bad-0-empty-truncated.xz +0 -0
- package/deps/xz/tests/files/bad-0-footer_magic.xz +0 -0
- package/deps/xz/tests/files/bad-0-header_magic.xz +0 -0
- package/deps/xz/tests/files/bad-0-nonempty_index.xz +0 -0
- package/deps/xz/tests/files/bad-0cat-alone.xz +0 -0
- package/deps/xz/tests/files/bad-0cat-header_magic.xz +0 -0
- package/deps/xz/tests/files/bad-0catpad-empty.xz +0 -0
- package/deps/xz/tests/files/bad-0pad-empty.xz +0 -0
- package/deps/xz/tests/files/bad-1-block_header-1.xz +0 -0
- package/deps/xz/tests/files/bad-1-block_header-2.xz +0 -0
- package/deps/xz/tests/files/bad-1-block_header-3.xz +0 -0
- package/deps/xz/tests/files/bad-1-block_header-4.xz +0 -0
- package/deps/xz/tests/files/bad-1-block_header-5.xz +0 -0
- package/deps/xz/tests/files/bad-1-block_header-6.xz +0 -0
- package/deps/xz/tests/files/bad-1-check-crc32.xz +0 -0
- package/deps/xz/tests/files/bad-1-check-crc64.xz +0 -0
- package/deps/xz/tests/files/bad-1-check-sha256.xz +0 -0
- package/deps/xz/tests/files/bad-1-lzma2-1.xz +0 -0
- package/deps/xz/tests/files/bad-1-lzma2-2.xz +0 -0
- package/deps/xz/tests/files/bad-1-lzma2-3.xz +0 -0
- package/deps/xz/tests/files/bad-1-lzma2-4.xz +0 -0
- package/deps/xz/tests/files/bad-1-lzma2-5.xz +0 -0
- package/deps/xz/tests/files/bad-1-lzma2-6.xz +0 -0
- package/deps/xz/tests/files/bad-1-lzma2-7.xz +0 -0
- package/deps/xz/tests/files/bad-1-lzma2-8.xz +0 -0
- package/deps/xz/tests/files/bad-1-stream_flags-1.xz +0 -0
- package/deps/xz/tests/files/bad-1-stream_flags-2.xz +0 -0
- package/deps/xz/tests/files/bad-1-stream_flags-3.xz +0 -0
- package/deps/xz/tests/files/bad-1-vli-1.xz +0 -0
- package/deps/xz/tests/files/bad-1-vli-2.xz +0 -0
- package/deps/xz/tests/files/bad-2-compressed_data_padding.xz +0 -0
- package/deps/xz/tests/files/bad-2-index-1.xz +0 -0
- package/deps/xz/tests/files/bad-2-index-2.xz +0 -0
- package/deps/xz/tests/files/bad-2-index-3.xz +0 -0
- package/deps/xz/tests/files/bad-2-index-4.xz +0 -0
- package/deps/xz/tests/files/bad-2-index-5.xz +0 -0
- package/deps/xz/tests/files/good-0-empty.xz +0 -0
- package/deps/xz/tests/files/good-0cat-empty.xz +0 -0
- package/deps/xz/tests/files/good-0catpad-empty.xz +0 -0
- package/deps/xz/tests/files/good-0pad-empty.xz +0 -0
- package/deps/xz/tests/files/good-1-3delta-lzma2.xz +0 -0
- package/deps/xz/tests/files/good-1-block_header-1.xz +0 -0
- package/deps/xz/tests/files/good-1-block_header-2.xz +0 -0
- package/deps/xz/tests/files/good-1-block_header-3.xz +0 -0
- package/deps/xz/tests/files/good-1-check-crc32.xz +0 -0
- package/deps/xz/tests/files/good-1-check-crc64.xz +0 -0
- package/deps/xz/tests/files/good-1-check-none.xz +0 -0
- package/deps/xz/tests/files/good-1-check-sha256.xz +0 -0
- package/deps/xz/tests/files/good-1-delta-lzma2.tiff.xz +0 -0
- package/deps/xz/tests/files/good-1-lzma2-1.xz +0 -0
- package/deps/xz/tests/files/good-1-lzma2-2.xz +0 -0
- package/deps/xz/tests/files/good-1-lzma2-3.xz +0 -0
- package/deps/xz/tests/files/good-1-lzma2-4.xz +0 -0
- package/deps/xz/tests/files/good-1-lzma2-5.xz +0 -0
- package/deps/xz/tests/files/good-1-sparc-lzma2.xz +0 -0
- package/deps/xz/tests/files/good-1-x86-lzma2.xz +0 -0
- package/deps/xz/tests/files/good-2-lzma2.xz +0 -0
- package/deps/xz/tests/files/unsupported-block_header.xz +0 -0
- package/deps/xz/tests/files/unsupported-check.xz +0 -0
- package/deps/xz/tests/files/unsupported-filter_flags-1.xz +0 -0
- package/deps/xz/tests/files/unsupported-filter_flags-2.xz +0 -0
- package/deps/xz/tests/files/unsupported-filter_flags-3.xz +0 -0
- package/deps/xz/tests/test_bcj_exact_size.c +0 -113
- package/deps/xz/tests/test_block_header.c +0 -240
- package/deps/xz/tests/test_check.c +0 -83
- package/deps/xz/tests/test_compress.sh +0 -142
- package/deps/xz/tests/test_files.sh +0 -57
- package/deps/xz/tests/test_filter_flags.c +0 -258
- package/deps/xz/tests/test_index.c +0 -659
- package/deps/xz/tests/test_scripts.sh +0 -76
- package/deps/xz/tests/test_stream_flags.c +0 -180
- package/deps/xz/tests/tests.h +0 -124
- package/deps/xz/tests/xzgrep_expected_output +0 -39
- package/deps/xz/windows/INSTALL-MSVC.txt +0 -47
- package/deps/xz/windows/INSTALL-MinGW.txt +0 -138
- package/deps/xz/windows/README-Windows.txt +0 -122
- package/deps/xz/windows/build.bash +0 -203
- package/deps/xz/windows/config.h +0 -142
- package/deps/xz/windows/liblzma.vcxproj +0 -354
- package/deps/xz/windows/liblzma_dll.vcxproj +0 -383
- package/deps/xz/windows/xz_win.sln +0 -48
- package/node_modules/node-pre-gyp/CHANGELOG.md +0 -319
- package/node_modules/node-pre-gyp/LICENSE +0 -27
- package/node_modules/node-pre-gyp/README.md +0 -570
- package/node_modules/node-pre-gyp/appveyor.yml +0 -30
- package/node_modules/node-pre-gyp/bin/node-pre-gyp +0 -131
- package/node_modules/node-pre-gyp/bin/node-pre-gyp.cmd +0 -2
- package/node_modules/node-pre-gyp/lib/build.js +0 -43
- package/node_modules/node-pre-gyp/lib/clean.js +0 -23
- package/node_modules/node-pre-gyp/lib/configure.js +0 -48
- package/node_modules/node-pre-gyp/lib/info.js +0 -40
- package/node_modules/node-pre-gyp/lib/install.js +0 -215
- package/node_modules/node-pre-gyp/lib/node-pre-gyp.js +0 -192
- package/node_modules/node-pre-gyp/lib/package.js +0 -46
- package/node_modules/node-pre-gyp/lib/pre-binding.js +0 -25
- package/node_modules/node-pre-gyp/lib/publish.js +0 -77
- package/node_modules/node-pre-gyp/lib/rebuild.js +0 -13
- package/node_modules/node-pre-gyp/lib/reinstall.js +0 -13
- package/node_modules/node-pre-gyp/lib/reveal.js +0 -31
- package/node_modules/node-pre-gyp/lib/testbinary.js +0 -73
- package/node_modules/node-pre-gyp/lib/testpackage.js +0 -49
- package/node_modules/node-pre-gyp/lib/unpublish.js +0 -41
- package/node_modules/node-pre-gyp/lib/util/abi_crosswalk.json +0 -1222
- package/node_modules/node-pre-gyp/lib/util/compile.js +0 -87
- package/node_modules/node-pre-gyp/lib/util/handle_gyp_opts.js +0 -94
- package/node_modules/node-pre-gyp/lib/util/nw-pre-gyp/index.html +0 -26
- package/node_modules/node-pre-gyp/lib/util/nw-pre-gyp/package.json +0 -9
- package/node_modules/node-pre-gyp/lib/util/s3_setup.js +0 -27
- package/node_modules/node-pre-gyp/lib/util/versioning.js +0 -308
- package/node_modules/node-pre-gyp/package.json +0 -136
- package/src/bindings/module.cpp +0 -107
- package/src/bindings/node-liblzma.cpp +0 -320
- package/src/bindings/node-liblzma.hpp +0 -115
- package/src/lzma.coffee +0 -339
|
@@ -1,1061 +0,0 @@
|
|
|
1
|
-
///////////////////////////////////////////////////////////////////////////////
|
|
2
|
-
//
|
|
3
|
-
/// \file lzma_decoder.c
|
|
4
|
-
/// \brief LZMA decoder
|
|
5
|
-
///
|
|
6
|
-
// Authors: Igor Pavlov
|
|
7
|
-
// Lasse Collin
|
|
8
|
-
//
|
|
9
|
-
// This file has been put into the public domain.
|
|
10
|
-
// You can do whatever you want with this file.
|
|
11
|
-
//
|
|
12
|
-
///////////////////////////////////////////////////////////////////////////////
|
|
13
|
-
|
|
14
|
-
#include "lz_decoder.h"
|
|
15
|
-
#include "lzma_common.h"
|
|
16
|
-
#include "lzma_decoder.h"
|
|
17
|
-
#include "range_decoder.h"
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
#ifdef HAVE_SMALL
|
|
21
|
-
|
|
22
|
-
// Macros for (somewhat) size-optimized code.
|
|
23
|
-
#define seq_4(seq) seq
|
|
24
|
-
|
|
25
|
-
#define seq_6(seq) seq
|
|
26
|
-
|
|
27
|
-
#define seq_8(seq) seq
|
|
28
|
-
|
|
29
|
-
#define seq_len(seq) \
|
|
30
|
-
seq ## _CHOICE, \
|
|
31
|
-
seq ## _CHOICE2, \
|
|
32
|
-
seq ## _BITTREE
|
|
33
|
-
|
|
34
|
-
#define len_decode(target, ld, pos_state, seq) \
|
|
35
|
-
do { \
|
|
36
|
-
case seq ## _CHOICE: \
|
|
37
|
-
rc_if_0(ld.choice, seq ## _CHOICE) { \
|
|
38
|
-
rc_update_0(ld.choice); \
|
|
39
|
-
probs = ld.low[pos_state];\
|
|
40
|
-
limit = LEN_LOW_SYMBOLS; \
|
|
41
|
-
target = MATCH_LEN_MIN; \
|
|
42
|
-
} else { \
|
|
43
|
-
rc_update_1(ld.choice); \
|
|
44
|
-
case seq ## _CHOICE2: \
|
|
45
|
-
rc_if_0(ld.choice2, seq ## _CHOICE2) { \
|
|
46
|
-
rc_update_0(ld.choice2); \
|
|
47
|
-
probs = ld.mid[pos_state]; \
|
|
48
|
-
limit = LEN_MID_SYMBOLS; \
|
|
49
|
-
target = MATCH_LEN_MIN + LEN_LOW_SYMBOLS; \
|
|
50
|
-
} else { \
|
|
51
|
-
rc_update_1(ld.choice2); \
|
|
52
|
-
probs = ld.high; \
|
|
53
|
-
limit = LEN_HIGH_SYMBOLS; \
|
|
54
|
-
target = MATCH_LEN_MIN + LEN_LOW_SYMBOLS \
|
|
55
|
-
+ LEN_MID_SYMBOLS; \
|
|
56
|
-
} \
|
|
57
|
-
} \
|
|
58
|
-
symbol = 1; \
|
|
59
|
-
case seq ## _BITTREE: \
|
|
60
|
-
do { \
|
|
61
|
-
rc_bit(probs[symbol], , , seq ## _BITTREE); \
|
|
62
|
-
} while (symbol < limit); \
|
|
63
|
-
target += symbol - limit; \
|
|
64
|
-
} while (0)
|
|
65
|
-
|
|
66
|
-
#else // HAVE_SMALL
|
|
67
|
-
|
|
68
|
-
// Unrolled versions
|
|
69
|
-
#define seq_4(seq) \
|
|
70
|
-
seq ## 0, \
|
|
71
|
-
seq ## 1, \
|
|
72
|
-
seq ## 2, \
|
|
73
|
-
seq ## 3
|
|
74
|
-
|
|
75
|
-
#define seq_6(seq) \
|
|
76
|
-
seq ## 0, \
|
|
77
|
-
seq ## 1, \
|
|
78
|
-
seq ## 2, \
|
|
79
|
-
seq ## 3, \
|
|
80
|
-
seq ## 4, \
|
|
81
|
-
seq ## 5
|
|
82
|
-
|
|
83
|
-
#define seq_8(seq) \
|
|
84
|
-
seq ## 0, \
|
|
85
|
-
seq ## 1, \
|
|
86
|
-
seq ## 2, \
|
|
87
|
-
seq ## 3, \
|
|
88
|
-
seq ## 4, \
|
|
89
|
-
seq ## 5, \
|
|
90
|
-
seq ## 6, \
|
|
91
|
-
seq ## 7
|
|
92
|
-
|
|
93
|
-
#define seq_len(seq) \
|
|
94
|
-
seq ## _CHOICE, \
|
|
95
|
-
seq ## _LOW0, \
|
|
96
|
-
seq ## _LOW1, \
|
|
97
|
-
seq ## _LOW2, \
|
|
98
|
-
seq ## _CHOICE2, \
|
|
99
|
-
seq ## _MID0, \
|
|
100
|
-
seq ## _MID1, \
|
|
101
|
-
seq ## _MID2, \
|
|
102
|
-
seq ## _HIGH0, \
|
|
103
|
-
seq ## _HIGH1, \
|
|
104
|
-
seq ## _HIGH2, \
|
|
105
|
-
seq ## _HIGH3, \
|
|
106
|
-
seq ## _HIGH4, \
|
|
107
|
-
seq ## _HIGH5, \
|
|
108
|
-
seq ## _HIGH6, \
|
|
109
|
-
seq ## _HIGH7
|
|
110
|
-
|
|
111
|
-
#define len_decode(target, ld, pos_state, seq) \
|
|
112
|
-
do { \
|
|
113
|
-
symbol = 1; \
|
|
114
|
-
case seq ## _CHOICE: \
|
|
115
|
-
rc_if_0(ld.choice, seq ## _CHOICE) { \
|
|
116
|
-
rc_update_0(ld.choice); \
|
|
117
|
-
rc_bit_case(ld.low[pos_state][symbol], , , seq ## _LOW0); \
|
|
118
|
-
rc_bit_case(ld.low[pos_state][symbol], , , seq ## _LOW1); \
|
|
119
|
-
rc_bit_case(ld.low[pos_state][symbol], , , seq ## _LOW2); \
|
|
120
|
-
target = symbol - LEN_LOW_SYMBOLS + MATCH_LEN_MIN; \
|
|
121
|
-
} else { \
|
|
122
|
-
rc_update_1(ld.choice); \
|
|
123
|
-
case seq ## _CHOICE2: \
|
|
124
|
-
rc_if_0(ld.choice2, seq ## _CHOICE2) { \
|
|
125
|
-
rc_update_0(ld.choice2); \
|
|
126
|
-
rc_bit_case(ld.mid[pos_state][symbol], , , \
|
|
127
|
-
seq ## _MID0); \
|
|
128
|
-
rc_bit_case(ld.mid[pos_state][symbol], , , \
|
|
129
|
-
seq ## _MID1); \
|
|
130
|
-
rc_bit_case(ld.mid[pos_state][symbol], , , \
|
|
131
|
-
seq ## _MID2); \
|
|
132
|
-
target = symbol - LEN_MID_SYMBOLS \
|
|
133
|
-
+ MATCH_LEN_MIN + LEN_LOW_SYMBOLS; \
|
|
134
|
-
} else { \
|
|
135
|
-
rc_update_1(ld.choice2); \
|
|
136
|
-
rc_bit_case(ld.high[symbol], , , seq ## _HIGH0); \
|
|
137
|
-
rc_bit_case(ld.high[symbol], , , seq ## _HIGH1); \
|
|
138
|
-
rc_bit_case(ld.high[symbol], , , seq ## _HIGH2); \
|
|
139
|
-
rc_bit_case(ld.high[symbol], , , seq ## _HIGH3); \
|
|
140
|
-
rc_bit_case(ld.high[symbol], , , seq ## _HIGH4); \
|
|
141
|
-
rc_bit_case(ld.high[symbol], , , seq ## _HIGH5); \
|
|
142
|
-
rc_bit_case(ld.high[symbol], , , seq ## _HIGH6); \
|
|
143
|
-
rc_bit_case(ld.high[symbol], , , seq ## _HIGH7); \
|
|
144
|
-
target = symbol - LEN_HIGH_SYMBOLS \
|
|
145
|
-
+ MATCH_LEN_MIN \
|
|
146
|
-
+ LEN_LOW_SYMBOLS + LEN_MID_SYMBOLS; \
|
|
147
|
-
} \
|
|
148
|
-
} \
|
|
149
|
-
} while (0)
|
|
150
|
-
|
|
151
|
-
#endif // HAVE_SMALL
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
/// Length decoder probabilities; see comments in lzma_common.h.
|
|
155
|
-
typedef struct {
|
|
156
|
-
probability choice;
|
|
157
|
-
probability choice2;
|
|
158
|
-
probability low[POS_STATES_MAX][LEN_LOW_SYMBOLS];
|
|
159
|
-
probability mid[POS_STATES_MAX][LEN_MID_SYMBOLS];
|
|
160
|
-
probability high[LEN_HIGH_SYMBOLS];
|
|
161
|
-
} lzma_length_decoder;
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
struct lzma_coder_s {
|
|
165
|
-
///////////////////
|
|
166
|
-
// Probabilities //
|
|
167
|
-
///////////////////
|
|
168
|
-
|
|
169
|
-
/// Literals; see comments in lzma_common.h.
|
|
170
|
-
probability literal[LITERAL_CODERS_MAX][LITERAL_CODER_SIZE];
|
|
171
|
-
|
|
172
|
-
/// If 1, it's a match. Otherwise it's a single 8-bit literal.
|
|
173
|
-
probability is_match[STATES][POS_STATES_MAX];
|
|
174
|
-
|
|
175
|
-
/// If 1, it's a repeated match. The distance is one of rep0 .. rep3.
|
|
176
|
-
probability is_rep[STATES];
|
|
177
|
-
|
|
178
|
-
/// If 0, distance of a repeated match is rep0.
|
|
179
|
-
/// Otherwise check is_rep1.
|
|
180
|
-
probability is_rep0[STATES];
|
|
181
|
-
|
|
182
|
-
/// If 0, distance of a repeated match is rep1.
|
|
183
|
-
/// Otherwise check is_rep2.
|
|
184
|
-
probability is_rep1[STATES];
|
|
185
|
-
|
|
186
|
-
/// If 0, distance of a repeated match is rep2. Otherwise it is rep3.
|
|
187
|
-
probability is_rep2[STATES];
|
|
188
|
-
|
|
189
|
-
/// If 1, the repeated match has length of one byte. Otherwise
|
|
190
|
-
/// the length is decoded from rep_len_decoder.
|
|
191
|
-
probability is_rep0_long[STATES][POS_STATES_MAX];
|
|
192
|
-
|
|
193
|
-
/// Probability tree for the highest two bits of the match distance.
|
|
194
|
-
/// There is a separate probability tree for match lengths of
|
|
195
|
-
/// 2 (i.e. MATCH_LEN_MIN), 3, 4, and [5, 273].
|
|
196
|
-
probability dist_slot[DIST_STATES][DIST_SLOTS];
|
|
197
|
-
|
|
198
|
-
/// Probability trees for additional bits for match distance when the
|
|
199
|
-
/// distance is in the range [4, 127].
|
|
200
|
-
probability pos_special[FULL_DISTANCES - DIST_MODEL_END];
|
|
201
|
-
|
|
202
|
-
/// Probability tree for the lowest four bits of a match distance
|
|
203
|
-
/// that is equal to or greater than 128.
|
|
204
|
-
probability pos_align[ALIGN_SIZE];
|
|
205
|
-
|
|
206
|
-
/// Length of a normal match
|
|
207
|
-
lzma_length_decoder match_len_decoder;
|
|
208
|
-
|
|
209
|
-
/// Length of a repeated match
|
|
210
|
-
lzma_length_decoder rep_len_decoder;
|
|
211
|
-
|
|
212
|
-
///////////////////
|
|
213
|
-
// Decoder state //
|
|
214
|
-
///////////////////
|
|
215
|
-
|
|
216
|
-
// Range coder
|
|
217
|
-
lzma_range_decoder rc;
|
|
218
|
-
|
|
219
|
-
// Types of the most recently seen LZMA symbols
|
|
220
|
-
lzma_lzma_state state;
|
|
221
|
-
|
|
222
|
-
uint32_t rep0; ///< Distance of the latest match
|
|
223
|
-
uint32_t rep1; ///< Distance of second latest match
|
|
224
|
-
uint32_t rep2; ///< Distance of third latest match
|
|
225
|
-
uint32_t rep3; ///< Distance of fourth latest match
|
|
226
|
-
|
|
227
|
-
uint32_t pos_mask; // (1U << pb) - 1
|
|
228
|
-
uint32_t literal_context_bits;
|
|
229
|
-
uint32_t literal_pos_mask;
|
|
230
|
-
|
|
231
|
-
/// Uncompressed size as bytes, or LZMA_VLI_UNKNOWN if end of
|
|
232
|
-
/// payload marker is expected.
|
|
233
|
-
lzma_vli uncompressed_size;
|
|
234
|
-
|
|
235
|
-
////////////////////////////////
|
|
236
|
-
// State of incomplete symbol //
|
|
237
|
-
////////////////////////////////
|
|
238
|
-
|
|
239
|
-
/// Position where to continue the decoder loop
|
|
240
|
-
enum {
|
|
241
|
-
SEQ_NORMALIZE,
|
|
242
|
-
SEQ_IS_MATCH,
|
|
243
|
-
seq_8(SEQ_LITERAL),
|
|
244
|
-
seq_8(SEQ_LITERAL_MATCHED),
|
|
245
|
-
SEQ_LITERAL_WRITE,
|
|
246
|
-
SEQ_IS_REP,
|
|
247
|
-
seq_len(SEQ_MATCH_LEN),
|
|
248
|
-
seq_6(SEQ_DIST_SLOT),
|
|
249
|
-
SEQ_DIST_MODEL,
|
|
250
|
-
SEQ_DIRECT,
|
|
251
|
-
seq_4(SEQ_ALIGN),
|
|
252
|
-
SEQ_EOPM,
|
|
253
|
-
SEQ_IS_REP0,
|
|
254
|
-
SEQ_SHORTREP,
|
|
255
|
-
SEQ_IS_REP0_LONG,
|
|
256
|
-
SEQ_IS_REP1,
|
|
257
|
-
SEQ_IS_REP2,
|
|
258
|
-
seq_len(SEQ_REP_LEN),
|
|
259
|
-
SEQ_COPY,
|
|
260
|
-
} sequence;
|
|
261
|
-
|
|
262
|
-
/// Base of the current probability tree
|
|
263
|
-
probability *probs;
|
|
264
|
-
|
|
265
|
-
/// Symbol being decoded. This is also used as an index variable in
|
|
266
|
-
/// bittree decoders: probs[symbol]
|
|
267
|
-
uint32_t symbol;
|
|
268
|
-
|
|
269
|
-
/// Used as a loop termination condition on bittree decoders and
|
|
270
|
-
/// direct bits decoder.
|
|
271
|
-
uint32_t limit;
|
|
272
|
-
|
|
273
|
-
/// Matched literal decoder: 0x100 or 0 to help avoiding branches.
|
|
274
|
-
/// Bittree reverse decoders: Offset of the next bit: 1 << offset
|
|
275
|
-
uint32_t offset;
|
|
276
|
-
|
|
277
|
-
/// If decoding a literal: match byte.
|
|
278
|
-
/// If decoding a match: length of the match.
|
|
279
|
-
uint32_t len;
|
|
280
|
-
};
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
static lzma_ret
|
|
284
|
-
lzma_decode(lzma_coder *restrict coder, lzma_dict *restrict dictptr,
|
|
285
|
-
const uint8_t *restrict in,
|
|
286
|
-
size_t *restrict in_pos, size_t in_size)
|
|
287
|
-
{
|
|
288
|
-
////////////////////
|
|
289
|
-
// Initialization //
|
|
290
|
-
////////////////////
|
|
291
|
-
|
|
292
|
-
{
|
|
293
|
-
const lzma_ret ret = rc_read_init(
|
|
294
|
-
&coder->rc, in, in_pos, in_size);
|
|
295
|
-
if (ret != LZMA_STREAM_END)
|
|
296
|
-
return ret;
|
|
297
|
-
}
|
|
298
|
-
|
|
299
|
-
///////////////
|
|
300
|
-
// Variables //
|
|
301
|
-
///////////////
|
|
302
|
-
|
|
303
|
-
// Making local copies of often-used variables improves both
|
|
304
|
-
// speed and readability.
|
|
305
|
-
|
|
306
|
-
lzma_dict dict = *dictptr;
|
|
307
|
-
|
|
308
|
-
const size_t dict_start = dict.pos;
|
|
309
|
-
|
|
310
|
-
// Range decoder
|
|
311
|
-
rc_to_local(coder->rc, *in_pos);
|
|
312
|
-
|
|
313
|
-
// State
|
|
314
|
-
uint32_t state = coder->state;
|
|
315
|
-
uint32_t rep0 = coder->rep0;
|
|
316
|
-
uint32_t rep1 = coder->rep1;
|
|
317
|
-
uint32_t rep2 = coder->rep2;
|
|
318
|
-
uint32_t rep3 = coder->rep3;
|
|
319
|
-
|
|
320
|
-
const uint32_t pos_mask = coder->pos_mask;
|
|
321
|
-
|
|
322
|
-
// These variables are actually needed only if we last time ran
|
|
323
|
-
// out of input in the middle of the decoder loop.
|
|
324
|
-
probability *probs = coder->probs;
|
|
325
|
-
uint32_t symbol = coder->symbol;
|
|
326
|
-
uint32_t limit = coder->limit;
|
|
327
|
-
uint32_t offset = coder->offset;
|
|
328
|
-
uint32_t len = coder->len;
|
|
329
|
-
|
|
330
|
-
const uint32_t literal_pos_mask = coder->literal_pos_mask;
|
|
331
|
-
const uint32_t literal_context_bits = coder->literal_context_bits;
|
|
332
|
-
|
|
333
|
-
// Temporary variables
|
|
334
|
-
uint32_t pos_state = dict.pos & pos_mask;
|
|
335
|
-
|
|
336
|
-
lzma_ret ret = LZMA_OK;
|
|
337
|
-
|
|
338
|
-
// If uncompressed size is known, there must be no end of payload
|
|
339
|
-
// marker.
|
|
340
|
-
const bool no_eopm = coder->uncompressed_size
|
|
341
|
-
!= LZMA_VLI_UNKNOWN;
|
|
342
|
-
if (no_eopm && coder->uncompressed_size < dict.limit - dict.pos)
|
|
343
|
-
dict.limit = dict.pos + (size_t)(coder->uncompressed_size);
|
|
344
|
-
|
|
345
|
-
// The main decoder loop. The "switch" is used to restart the decoder at
|
|
346
|
-
// correct location. Once restarted, the "switch" is no longer used.
|
|
347
|
-
switch (coder->sequence)
|
|
348
|
-
while (true) {
|
|
349
|
-
// Calculate new pos_state. This is skipped on the first loop
|
|
350
|
-
// since we already calculated it when setting up the local
|
|
351
|
-
// variables.
|
|
352
|
-
pos_state = dict.pos & pos_mask;
|
|
353
|
-
|
|
354
|
-
case SEQ_NORMALIZE:
|
|
355
|
-
case SEQ_IS_MATCH:
|
|
356
|
-
if (unlikely(no_eopm && dict.pos == dict.limit))
|
|
357
|
-
break;
|
|
358
|
-
|
|
359
|
-
rc_if_0(coder->is_match[state][pos_state], SEQ_IS_MATCH) {
|
|
360
|
-
rc_update_0(coder->is_match[state][pos_state]);
|
|
361
|
-
|
|
362
|
-
// It's a literal i.e. a single 8-bit byte.
|
|
363
|
-
|
|
364
|
-
probs = literal_subcoder(coder->literal,
|
|
365
|
-
literal_context_bits, literal_pos_mask,
|
|
366
|
-
dict.pos, dict_get(&dict, 0));
|
|
367
|
-
symbol = 1;
|
|
368
|
-
|
|
369
|
-
if (is_literal_state(state)) {
|
|
370
|
-
// Decode literal without match byte.
|
|
371
|
-
#ifdef HAVE_SMALL
|
|
372
|
-
case SEQ_LITERAL:
|
|
373
|
-
do {
|
|
374
|
-
rc_bit(probs[symbol], , , SEQ_LITERAL);
|
|
375
|
-
} while (symbol < (1 << 8));
|
|
376
|
-
#else
|
|
377
|
-
rc_bit_case(probs[symbol], , , SEQ_LITERAL0);
|
|
378
|
-
rc_bit_case(probs[symbol], , , SEQ_LITERAL1);
|
|
379
|
-
rc_bit_case(probs[symbol], , , SEQ_LITERAL2);
|
|
380
|
-
rc_bit_case(probs[symbol], , , SEQ_LITERAL3);
|
|
381
|
-
rc_bit_case(probs[symbol], , , SEQ_LITERAL4);
|
|
382
|
-
rc_bit_case(probs[symbol], , , SEQ_LITERAL5);
|
|
383
|
-
rc_bit_case(probs[symbol], , , SEQ_LITERAL6);
|
|
384
|
-
rc_bit_case(probs[symbol], , , SEQ_LITERAL7);
|
|
385
|
-
#endif
|
|
386
|
-
} else {
|
|
387
|
-
// Decode literal with match byte.
|
|
388
|
-
//
|
|
389
|
-
// We store the byte we compare against
|
|
390
|
-
// ("match byte") to "len" to minimize the
|
|
391
|
-
// number of variables we need to store
|
|
392
|
-
// between decoder calls.
|
|
393
|
-
len = dict_get(&dict, rep0) << 1;
|
|
394
|
-
|
|
395
|
-
// The usage of "offset" allows omitting some
|
|
396
|
-
// branches, which should give tiny speed
|
|
397
|
-
// improvement on some CPUs. "offset" gets
|
|
398
|
-
// set to zero if match_bit didn't match.
|
|
399
|
-
offset = 0x100;
|
|
400
|
-
|
|
401
|
-
#ifdef HAVE_SMALL
|
|
402
|
-
case SEQ_LITERAL_MATCHED:
|
|
403
|
-
do {
|
|
404
|
-
const uint32_t match_bit
|
|
405
|
-
= len & offset;
|
|
406
|
-
const uint32_t subcoder_index
|
|
407
|
-
= offset + match_bit
|
|
408
|
-
+ symbol;
|
|
409
|
-
|
|
410
|
-
rc_bit(probs[subcoder_index],
|
|
411
|
-
offset &= ~match_bit,
|
|
412
|
-
offset &= match_bit,
|
|
413
|
-
SEQ_LITERAL_MATCHED);
|
|
414
|
-
|
|
415
|
-
// It seems to be faster to do this
|
|
416
|
-
// here instead of putting it to the
|
|
417
|
-
// beginning of the loop and then
|
|
418
|
-
// putting the "case" in the middle
|
|
419
|
-
// of the loop.
|
|
420
|
-
len <<= 1;
|
|
421
|
-
|
|
422
|
-
} while (symbol < (1 << 8));
|
|
423
|
-
#else
|
|
424
|
-
// Unroll the loop.
|
|
425
|
-
uint32_t match_bit;
|
|
426
|
-
uint32_t subcoder_index;
|
|
427
|
-
|
|
428
|
-
# define d(seq) \
|
|
429
|
-
case seq: \
|
|
430
|
-
match_bit = len & offset; \
|
|
431
|
-
subcoder_index = offset + match_bit + symbol; \
|
|
432
|
-
rc_bit(probs[subcoder_index], \
|
|
433
|
-
offset &= ~match_bit, \
|
|
434
|
-
offset &= match_bit, \
|
|
435
|
-
seq)
|
|
436
|
-
|
|
437
|
-
d(SEQ_LITERAL_MATCHED0);
|
|
438
|
-
len <<= 1;
|
|
439
|
-
d(SEQ_LITERAL_MATCHED1);
|
|
440
|
-
len <<= 1;
|
|
441
|
-
d(SEQ_LITERAL_MATCHED2);
|
|
442
|
-
len <<= 1;
|
|
443
|
-
d(SEQ_LITERAL_MATCHED3);
|
|
444
|
-
len <<= 1;
|
|
445
|
-
d(SEQ_LITERAL_MATCHED4);
|
|
446
|
-
len <<= 1;
|
|
447
|
-
d(SEQ_LITERAL_MATCHED5);
|
|
448
|
-
len <<= 1;
|
|
449
|
-
d(SEQ_LITERAL_MATCHED6);
|
|
450
|
-
len <<= 1;
|
|
451
|
-
d(SEQ_LITERAL_MATCHED7);
|
|
452
|
-
# undef d
|
|
453
|
-
#endif
|
|
454
|
-
}
|
|
455
|
-
|
|
456
|
-
//update_literal(state);
|
|
457
|
-
// Use a lookup table to update to literal state,
|
|
458
|
-
// since compared to other state updates, this would
|
|
459
|
-
// need two branches.
|
|
460
|
-
static const lzma_lzma_state next_state[] = {
|
|
461
|
-
STATE_LIT_LIT,
|
|
462
|
-
STATE_LIT_LIT,
|
|
463
|
-
STATE_LIT_LIT,
|
|
464
|
-
STATE_LIT_LIT,
|
|
465
|
-
STATE_MATCH_LIT_LIT,
|
|
466
|
-
STATE_REP_LIT_LIT,
|
|
467
|
-
STATE_SHORTREP_LIT_LIT,
|
|
468
|
-
STATE_MATCH_LIT,
|
|
469
|
-
STATE_REP_LIT,
|
|
470
|
-
STATE_SHORTREP_LIT,
|
|
471
|
-
STATE_MATCH_LIT,
|
|
472
|
-
STATE_REP_LIT
|
|
473
|
-
};
|
|
474
|
-
state = next_state[state];
|
|
475
|
-
|
|
476
|
-
case SEQ_LITERAL_WRITE:
|
|
477
|
-
if (unlikely(dict_put(&dict, symbol))) {
|
|
478
|
-
coder->sequence = SEQ_LITERAL_WRITE;
|
|
479
|
-
goto out;
|
|
480
|
-
}
|
|
481
|
-
|
|
482
|
-
continue;
|
|
483
|
-
}
|
|
484
|
-
|
|
485
|
-
// Instead of a new byte we are going to get a byte range
|
|
486
|
-
// (distance and length) which will be repeated from our
|
|
487
|
-
// output history.
|
|
488
|
-
|
|
489
|
-
rc_update_1(coder->is_match[state][pos_state]);
|
|
490
|
-
|
|
491
|
-
case SEQ_IS_REP:
|
|
492
|
-
rc_if_0(coder->is_rep[state], SEQ_IS_REP) {
|
|
493
|
-
// Not a repeated match
|
|
494
|
-
rc_update_0(coder->is_rep[state]);
|
|
495
|
-
update_match(state);
|
|
496
|
-
|
|
497
|
-
// The latest three match distances are kept in
|
|
498
|
-
// memory in case there are repeated matches.
|
|
499
|
-
rep3 = rep2;
|
|
500
|
-
rep2 = rep1;
|
|
501
|
-
rep1 = rep0;
|
|
502
|
-
|
|
503
|
-
// Decode the length of the match.
|
|
504
|
-
len_decode(len, coder->match_len_decoder,
|
|
505
|
-
pos_state, SEQ_MATCH_LEN);
|
|
506
|
-
|
|
507
|
-
// Prepare to decode the highest two bits of the
|
|
508
|
-
// match distance.
|
|
509
|
-
probs = coder->dist_slot[get_dist_state(len)];
|
|
510
|
-
symbol = 1;
|
|
511
|
-
|
|
512
|
-
#ifdef HAVE_SMALL
|
|
513
|
-
case SEQ_DIST_SLOT:
|
|
514
|
-
do {
|
|
515
|
-
rc_bit(probs[symbol], , , SEQ_DIST_SLOT);
|
|
516
|
-
} while (symbol < DIST_SLOTS);
|
|
517
|
-
#else
|
|
518
|
-
rc_bit_case(probs[symbol], , , SEQ_DIST_SLOT0);
|
|
519
|
-
rc_bit_case(probs[symbol], , , SEQ_DIST_SLOT1);
|
|
520
|
-
rc_bit_case(probs[symbol], , , SEQ_DIST_SLOT2);
|
|
521
|
-
rc_bit_case(probs[symbol], , , SEQ_DIST_SLOT3);
|
|
522
|
-
rc_bit_case(probs[symbol], , , SEQ_DIST_SLOT4);
|
|
523
|
-
rc_bit_case(probs[symbol], , , SEQ_DIST_SLOT5);
|
|
524
|
-
#endif
|
|
525
|
-
// Get rid of the highest bit that was needed for
|
|
526
|
-
// indexing of the probability array.
|
|
527
|
-
symbol -= DIST_SLOTS;
|
|
528
|
-
assert(symbol <= 63);
|
|
529
|
-
|
|
530
|
-
if (symbol < DIST_MODEL_START) {
|
|
531
|
-
// Match distances [0, 3] have only two bits.
|
|
532
|
-
rep0 = symbol;
|
|
533
|
-
} else {
|
|
534
|
-
// Decode the lowest [1, 29] bits of
|
|
535
|
-
// the match distance.
|
|
536
|
-
limit = (symbol >> 1) - 1;
|
|
537
|
-
assert(limit >= 1 && limit <= 30);
|
|
538
|
-
rep0 = 2 + (symbol & 1);
|
|
539
|
-
|
|
540
|
-
if (symbol < DIST_MODEL_END) {
|
|
541
|
-
// Prepare to decode the low bits for
|
|
542
|
-
// a distance of [4, 127].
|
|
543
|
-
assert(limit <= 5);
|
|
544
|
-
rep0 <<= limit;
|
|
545
|
-
assert(rep0 <= 96);
|
|
546
|
-
// -1 is fine, because we start
|
|
547
|
-
// decoding at probs[1], not probs[0].
|
|
548
|
-
// NOTE: This violates the C standard,
|
|
549
|
-
// since we are doing pointer
|
|
550
|
-
// arithmetic past the beginning of
|
|
551
|
-
// the array.
|
|
552
|
-
assert((int32_t)(rep0 - symbol - 1)
|
|
553
|
-
>= -1);
|
|
554
|
-
assert((int32_t)(rep0 - symbol - 1)
|
|
555
|
-
<= 82);
|
|
556
|
-
probs = coder->pos_special + rep0
|
|
557
|
-
- symbol - 1;
|
|
558
|
-
symbol = 1;
|
|
559
|
-
offset = 0;
|
|
560
|
-
case SEQ_DIST_MODEL:
|
|
561
|
-
#ifdef HAVE_SMALL
|
|
562
|
-
do {
|
|
563
|
-
rc_bit(probs[symbol], ,
|
|
564
|
-
rep0 += 1 << offset,
|
|
565
|
-
SEQ_DIST_MODEL);
|
|
566
|
-
} while (++offset < limit);
|
|
567
|
-
#else
|
|
568
|
-
switch (limit) {
|
|
569
|
-
case 5:
|
|
570
|
-
assert(offset == 0);
|
|
571
|
-
rc_bit(probs[symbol], ,
|
|
572
|
-
rep0 += 1,
|
|
573
|
-
SEQ_DIST_MODEL);
|
|
574
|
-
++offset;
|
|
575
|
-
--limit;
|
|
576
|
-
case 4:
|
|
577
|
-
rc_bit(probs[symbol], ,
|
|
578
|
-
rep0 += 1 << offset,
|
|
579
|
-
SEQ_DIST_MODEL);
|
|
580
|
-
++offset;
|
|
581
|
-
--limit;
|
|
582
|
-
case 3:
|
|
583
|
-
rc_bit(probs[symbol], ,
|
|
584
|
-
rep0 += 1 << offset,
|
|
585
|
-
SEQ_DIST_MODEL);
|
|
586
|
-
++offset;
|
|
587
|
-
--limit;
|
|
588
|
-
case 2:
|
|
589
|
-
rc_bit(probs[symbol], ,
|
|
590
|
-
rep0 += 1 << offset,
|
|
591
|
-
SEQ_DIST_MODEL);
|
|
592
|
-
++offset;
|
|
593
|
-
--limit;
|
|
594
|
-
case 1:
|
|
595
|
-
// We need "symbol" only for
|
|
596
|
-
// indexing the probability
|
|
597
|
-
// array, thus we can use
|
|
598
|
-
// rc_bit_last() here to omit
|
|
599
|
-
// the unneeded updating of
|
|
600
|
-
// "symbol".
|
|
601
|
-
rc_bit_last(probs[symbol], ,
|
|
602
|
-
rep0 += 1 << offset,
|
|
603
|
-
SEQ_DIST_MODEL);
|
|
604
|
-
}
|
|
605
|
-
#endif
|
|
606
|
-
} else {
|
|
607
|
-
// The distance is >= 128. Decode the
|
|
608
|
-
// lower bits without probabilities
|
|
609
|
-
// except the lowest four bits.
|
|
610
|
-
assert(symbol >= 14);
|
|
611
|
-
assert(limit >= 6);
|
|
612
|
-
limit -= ALIGN_BITS;
|
|
613
|
-
assert(limit >= 2);
|
|
614
|
-
case SEQ_DIRECT:
|
|
615
|
-
// Not worth manual unrolling
|
|
616
|
-
do {
|
|
617
|
-
rc_direct(rep0, SEQ_DIRECT);
|
|
618
|
-
} while (--limit > 0);
|
|
619
|
-
|
|
620
|
-
// Decode the lowest four bits using
|
|
621
|
-
// probabilities.
|
|
622
|
-
rep0 <<= ALIGN_BITS;
|
|
623
|
-
symbol = 1;
|
|
624
|
-
#ifdef HAVE_SMALL
|
|
625
|
-
offset = 0;
|
|
626
|
-
case SEQ_ALIGN:
|
|
627
|
-
do {
|
|
628
|
-
rc_bit(coder->pos_align[
|
|
629
|
-
symbol], ,
|
|
630
|
-
rep0 += 1 << offset,
|
|
631
|
-
SEQ_ALIGN);
|
|
632
|
-
} while (++offset < ALIGN_BITS);
|
|
633
|
-
#else
|
|
634
|
-
case SEQ_ALIGN0:
|
|
635
|
-
rc_bit(coder->pos_align[symbol], ,
|
|
636
|
-
rep0 += 1, SEQ_ALIGN0);
|
|
637
|
-
case SEQ_ALIGN1:
|
|
638
|
-
rc_bit(coder->pos_align[symbol], ,
|
|
639
|
-
rep0 += 2, SEQ_ALIGN1);
|
|
640
|
-
case SEQ_ALIGN2:
|
|
641
|
-
rc_bit(coder->pos_align[symbol], ,
|
|
642
|
-
rep0 += 4, SEQ_ALIGN2);
|
|
643
|
-
case SEQ_ALIGN3:
|
|
644
|
-
// Like in SEQ_DIST_MODEL, we don't
|
|
645
|
-
// need "symbol" for anything else
|
|
646
|
-
// than indexing the probability array.
|
|
647
|
-
rc_bit_last(coder->pos_align[symbol], ,
|
|
648
|
-
rep0 += 8, SEQ_ALIGN3);
|
|
649
|
-
#endif
|
|
650
|
-
|
|
651
|
-
if (rep0 == UINT32_MAX) {
|
|
652
|
-
// End of payload marker was
|
|
653
|
-
// found. It must not be
|
|
654
|
-
// present if uncompressed
|
|
655
|
-
// size is known.
|
|
656
|
-
if (coder->uncompressed_size
|
|
657
|
-
!= LZMA_VLI_UNKNOWN) {
|
|
658
|
-
ret = LZMA_DATA_ERROR;
|
|
659
|
-
goto out;
|
|
660
|
-
}
|
|
661
|
-
|
|
662
|
-
case SEQ_EOPM:
|
|
663
|
-
// LZMA1 stream with
|
|
664
|
-
// end-of-payload marker.
|
|
665
|
-
rc_normalize(SEQ_EOPM);
|
|
666
|
-
ret = LZMA_STREAM_END;
|
|
667
|
-
goto out;
|
|
668
|
-
}
|
|
669
|
-
}
|
|
670
|
-
}
|
|
671
|
-
|
|
672
|
-
// Validate the distance we just decoded.
|
|
673
|
-
if (unlikely(!dict_is_distance_valid(&dict, rep0))) {
|
|
674
|
-
ret = LZMA_DATA_ERROR;
|
|
675
|
-
goto out;
|
|
676
|
-
}
|
|
677
|
-
|
|
678
|
-
} else {
|
|
679
|
-
rc_update_1(coder->is_rep[state]);
|
|
680
|
-
|
|
681
|
-
// Repeated match
|
|
682
|
-
//
|
|
683
|
-
// The match distance is a value that we have had
|
|
684
|
-
// earlier. The latest four match distances are
|
|
685
|
-
// available as rep0, rep1, rep2 and rep3. We will
|
|
686
|
-
// now decode which of them is the new distance.
|
|
687
|
-
//
|
|
688
|
-
// There cannot be a match if we haven't produced
|
|
689
|
-
// any output, so check that first.
|
|
690
|
-
if (unlikely(!dict_is_distance_valid(&dict, 0))) {
|
|
691
|
-
ret = LZMA_DATA_ERROR;
|
|
692
|
-
goto out;
|
|
693
|
-
}
|
|
694
|
-
|
|
695
|
-
case SEQ_IS_REP0:
|
|
696
|
-
rc_if_0(coder->is_rep0[state], SEQ_IS_REP0) {
|
|
697
|
-
rc_update_0(coder->is_rep0[state]);
|
|
698
|
-
// The distance is rep0.
|
|
699
|
-
|
|
700
|
-
case SEQ_IS_REP0_LONG:
|
|
701
|
-
rc_if_0(coder->is_rep0_long[state][pos_state],
|
|
702
|
-
SEQ_IS_REP0_LONG) {
|
|
703
|
-
rc_update_0(coder->is_rep0_long[
|
|
704
|
-
state][pos_state]);
|
|
705
|
-
|
|
706
|
-
update_short_rep(state);
|
|
707
|
-
|
|
708
|
-
case SEQ_SHORTREP:
|
|
709
|
-
if (unlikely(dict_put(&dict, dict_get(
|
|
710
|
-
&dict, rep0)))) {
|
|
711
|
-
coder->sequence = SEQ_SHORTREP;
|
|
712
|
-
goto out;
|
|
713
|
-
}
|
|
714
|
-
|
|
715
|
-
continue;
|
|
716
|
-
}
|
|
717
|
-
|
|
718
|
-
// Repeating more than one byte at
|
|
719
|
-
// distance of rep0.
|
|
720
|
-
rc_update_1(coder->is_rep0_long[
|
|
721
|
-
state][pos_state]);
|
|
722
|
-
|
|
723
|
-
} else {
|
|
724
|
-
rc_update_1(coder->is_rep0[state]);
|
|
725
|
-
|
|
726
|
-
case SEQ_IS_REP1:
|
|
727
|
-
// The distance is rep1, rep2 or rep3. Once
|
|
728
|
-
// we find out which one of these three, it
|
|
729
|
-
// is stored to rep0 and rep1, rep2 and rep3
|
|
730
|
-
// are updated accordingly.
|
|
731
|
-
rc_if_0(coder->is_rep1[state], SEQ_IS_REP1) {
|
|
732
|
-
rc_update_0(coder->is_rep1[state]);
|
|
733
|
-
|
|
734
|
-
const uint32_t distance = rep1;
|
|
735
|
-
rep1 = rep0;
|
|
736
|
-
rep0 = distance;
|
|
737
|
-
|
|
738
|
-
} else {
|
|
739
|
-
rc_update_1(coder->is_rep1[state]);
|
|
740
|
-
case SEQ_IS_REP2:
|
|
741
|
-
rc_if_0(coder->is_rep2[state],
|
|
742
|
-
SEQ_IS_REP2) {
|
|
743
|
-
rc_update_0(coder->is_rep2[
|
|
744
|
-
state]);
|
|
745
|
-
|
|
746
|
-
const uint32_t distance = rep2;
|
|
747
|
-
rep2 = rep1;
|
|
748
|
-
rep1 = rep0;
|
|
749
|
-
rep0 = distance;
|
|
750
|
-
|
|
751
|
-
} else {
|
|
752
|
-
rc_update_1(coder->is_rep2[
|
|
753
|
-
state]);
|
|
754
|
-
|
|
755
|
-
const uint32_t distance = rep3;
|
|
756
|
-
rep3 = rep2;
|
|
757
|
-
rep2 = rep1;
|
|
758
|
-
rep1 = rep0;
|
|
759
|
-
rep0 = distance;
|
|
760
|
-
}
|
|
761
|
-
}
|
|
762
|
-
}
|
|
763
|
-
|
|
764
|
-
update_long_rep(state);
|
|
765
|
-
|
|
766
|
-
// Decode the length of the repeated match.
|
|
767
|
-
len_decode(len, coder->rep_len_decoder,
|
|
768
|
-
pos_state, SEQ_REP_LEN);
|
|
769
|
-
}
|
|
770
|
-
|
|
771
|
-
/////////////////////////////////
|
|
772
|
-
// Repeat from history buffer. //
|
|
773
|
-
/////////////////////////////////
|
|
774
|
-
|
|
775
|
-
// The length is always between these limits. There is no way
|
|
776
|
-
// to trigger the algorithm to set len outside this range.
|
|
777
|
-
assert(len >= MATCH_LEN_MIN);
|
|
778
|
-
assert(len <= MATCH_LEN_MAX);
|
|
779
|
-
|
|
780
|
-
case SEQ_COPY:
|
|
781
|
-
// Repeat len bytes from distance of rep0.
|
|
782
|
-
if (unlikely(dict_repeat(&dict, rep0, &len))) {
|
|
783
|
-
coder->sequence = SEQ_COPY;
|
|
784
|
-
goto out;
|
|
785
|
-
}
|
|
786
|
-
}
|
|
787
|
-
|
|
788
|
-
rc_normalize(SEQ_NORMALIZE);
|
|
789
|
-
coder->sequence = SEQ_IS_MATCH;
|
|
790
|
-
|
|
791
|
-
out:
|
|
792
|
-
// Save state
|
|
793
|
-
|
|
794
|
-
// NOTE: Must not copy dict.limit.
|
|
795
|
-
dictptr->pos = dict.pos;
|
|
796
|
-
dictptr->full = dict.full;
|
|
797
|
-
|
|
798
|
-
rc_from_local(coder->rc, *in_pos);
|
|
799
|
-
|
|
800
|
-
coder->state = state;
|
|
801
|
-
coder->rep0 = rep0;
|
|
802
|
-
coder->rep1 = rep1;
|
|
803
|
-
coder->rep2 = rep2;
|
|
804
|
-
coder->rep3 = rep3;
|
|
805
|
-
|
|
806
|
-
coder->probs = probs;
|
|
807
|
-
coder->symbol = symbol;
|
|
808
|
-
coder->limit = limit;
|
|
809
|
-
coder->offset = offset;
|
|
810
|
-
coder->len = len;
|
|
811
|
-
|
|
812
|
-
// Update the remaining amount of uncompressed data if uncompressed
|
|
813
|
-
// size was known.
|
|
814
|
-
if (coder->uncompressed_size != LZMA_VLI_UNKNOWN) {
|
|
815
|
-
coder->uncompressed_size -= dict.pos - dict_start;
|
|
816
|
-
|
|
817
|
-
// Since there cannot be end of payload marker if the
|
|
818
|
-
// uncompressed size was known, we check here if we
|
|
819
|
-
// finished decoding.
|
|
820
|
-
if (coder->uncompressed_size == 0 && ret == LZMA_OK
|
|
821
|
-
&& coder->sequence != SEQ_NORMALIZE)
|
|
822
|
-
ret = coder->sequence == SEQ_IS_MATCH
|
|
823
|
-
? LZMA_STREAM_END : LZMA_DATA_ERROR;
|
|
824
|
-
}
|
|
825
|
-
|
|
826
|
-
// We can do an additional check in the range decoder to catch some
|
|
827
|
-
// corrupted files.
|
|
828
|
-
if (ret == LZMA_STREAM_END) {
|
|
829
|
-
if (!rc_is_finished(coder->rc))
|
|
830
|
-
ret = LZMA_DATA_ERROR;
|
|
831
|
-
|
|
832
|
-
// Reset the range decoder so that it is ready to reinitialize
|
|
833
|
-
// for a new LZMA2 chunk.
|
|
834
|
-
rc_reset(coder->rc);
|
|
835
|
-
}
|
|
836
|
-
|
|
837
|
-
return ret;
|
|
838
|
-
}
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
static void
|
|
843
|
-
lzma_decoder_uncompressed(lzma_coder *coder, lzma_vli uncompressed_size)
|
|
844
|
-
{
|
|
845
|
-
coder->uncompressed_size = uncompressed_size;
|
|
846
|
-
}
|
|
847
|
-
|
|
848
|
-
/*
|
|
849
|
-
extern void
|
|
850
|
-
lzma_lzma_decoder_uncompressed(void *coder_ptr, lzma_vli uncompressed_size)
|
|
851
|
-
{
|
|
852
|
-
// This is hack.
|
|
853
|
-
(*(lzma_coder **)(coder))->uncompressed_size = uncompressed_size;
|
|
854
|
-
}
|
|
855
|
-
*/
|
|
856
|
-
|
|
857
|
-
static void
|
|
858
|
-
lzma_decoder_reset(lzma_coder *coder, const void *opt)
|
|
859
|
-
{
|
|
860
|
-
const lzma_options_lzma *options = opt;
|
|
861
|
-
|
|
862
|
-
// NOTE: We assume that lc/lp/pb are valid since they were
|
|
863
|
-
// successfully decoded with lzma_lzma_decode_properties().
|
|
864
|
-
|
|
865
|
-
// Calculate pos_mask. We don't need pos_bits as is for anything.
|
|
866
|
-
coder->pos_mask = (1U << options->pb) - 1;
|
|
867
|
-
|
|
868
|
-
// Initialize the literal decoder.
|
|
869
|
-
literal_init(coder->literal, options->lc, options->lp);
|
|
870
|
-
|
|
871
|
-
coder->literal_context_bits = options->lc;
|
|
872
|
-
coder->literal_pos_mask = (1U << options->lp) - 1;
|
|
873
|
-
|
|
874
|
-
// State
|
|
875
|
-
coder->state = STATE_LIT_LIT;
|
|
876
|
-
coder->rep0 = 0;
|
|
877
|
-
coder->rep1 = 0;
|
|
878
|
-
coder->rep2 = 0;
|
|
879
|
-
coder->rep3 = 0;
|
|
880
|
-
coder->pos_mask = (1U << options->pb) - 1;
|
|
881
|
-
|
|
882
|
-
// Range decoder
|
|
883
|
-
rc_reset(coder->rc);
|
|
884
|
-
|
|
885
|
-
// Bit and bittree decoders
|
|
886
|
-
for (uint32_t i = 0; i < STATES; ++i) {
|
|
887
|
-
for (uint32_t j = 0; j <= coder->pos_mask; ++j) {
|
|
888
|
-
bit_reset(coder->is_match[i][j]);
|
|
889
|
-
bit_reset(coder->is_rep0_long[i][j]);
|
|
890
|
-
}
|
|
891
|
-
|
|
892
|
-
bit_reset(coder->is_rep[i]);
|
|
893
|
-
bit_reset(coder->is_rep0[i]);
|
|
894
|
-
bit_reset(coder->is_rep1[i]);
|
|
895
|
-
bit_reset(coder->is_rep2[i]);
|
|
896
|
-
}
|
|
897
|
-
|
|
898
|
-
for (uint32_t i = 0; i < DIST_STATES; ++i)
|
|
899
|
-
bittree_reset(coder->dist_slot[i], DIST_SLOT_BITS);
|
|
900
|
-
|
|
901
|
-
for (uint32_t i = 0; i < FULL_DISTANCES - DIST_MODEL_END; ++i)
|
|
902
|
-
bit_reset(coder->pos_special[i]);
|
|
903
|
-
|
|
904
|
-
bittree_reset(coder->pos_align, ALIGN_BITS);
|
|
905
|
-
|
|
906
|
-
// Len decoders (also bit/bittree)
|
|
907
|
-
const uint32_t num_pos_states = 1U << options->pb;
|
|
908
|
-
bit_reset(coder->match_len_decoder.choice);
|
|
909
|
-
bit_reset(coder->match_len_decoder.choice2);
|
|
910
|
-
bit_reset(coder->rep_len_decoder.choice);
|
|
911
|
-
bit_reset(coder->rep_len_decoder.choice2);
|
|
912
|
-
|
|
913
|
-
for (uint32_t pos_state = 0; pos_state < num_pos_states; ++pos_state) {
|
|
914
|
-
bittree_reset(coder->match_len_decoder.low[pos_state],
|
|
915
|
-
LEN_LOW_BITS);
|
|
916
|
-
bittree_reset(coder->match_len_decoder.mid[pos_state],
|
|
917
|
-
LEN_MID_BITS);
|
|
918
|
-
|
|
919
|
-
bittree_reset(coder->rep_len_decoder.low[pos_state],
|
|
920
|
-
LEN_LOW_BITS);
|
|
921
|
-
bittree_reset(coder->rep_len_decoder.mid[pos_state],
|
|
922
|
-
LEN_MID_BITS);
|
|
923
|
-
}
|
|
924
|
-
|
|
925
|
-
bittree_reset(coder->match_len_decoder.high, LEN_HIGH_BITS);
|
|
926
|
-
bittree_reset(coder->rep_len_decoder.high, LEN_HIGH_BITS);
|
|
927
|
-
|
|
928
|
-
coder->sequence = SEQ_IS_MATCH;
|
|
929
|
-
coder->probs = NULL;
|
|
930
|
-
coder->symbol = 0;
|
|
931
|
-
coder->limit = 0;
|
|
932
|
-
coder->offset = 0;
|
|
933
|
-
coder->len = 0;
|
|
934
|
-
|
|
935
|
-
return;
|
|
936
|
-
}
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
extern lzma_ret
|
|
940
|
-
lzma_lzma_decoder_create(lzma_lz_decoder *lz, const lzma_allocator *allocator,
|
|
941
|
-
const void *opt, lzma_lz_options *lz_options)
|
|
942
|
-
{
|
|
943
|
-
if (lz->coder == NULL) {
|
|
944
|
-
lz->coder = lzma_alloc(sizeof(lzma_coder), allocator);
|
|
945
|
-
if (lz->coder == NULL)
|
|
946
|
-
return LZMA_MEM_ERROR;
|
|
947
|
-
|
|
948
|
-
lz->code = &lzma_decode;
|
|
949
|
-
lz->reset = &lzma_decoder_reset;
|
|
950
|
-
lz->set_uncompressed = &lzma_decoder_uncompressed;
|
|
951
|
-
}
|
|
952
|
-
|
|
953
|
-
// All dictionary sizes are OK here. LZ decoder will take care of
|
|
954
|
-
// the special cases.
|
|
955
|
-
const lzma_options_lzma *options = opt;
|
|
956
|
-
lz_options->dict_size = options->dict_size;
|
|
957
|
-
lz_options->preset_dict = options->preset_dict;
|
|
958
|
-
lz_options->preset_dict_size = options->preset_dict_size;
|
|
959
|
-
|
|
960
|
-
return LZMA_OK;
|
|
961
|
-
}
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
/// Allocate and initialize LZMA decoder. This is used only via LZ
|
|
965
|
-
/// initialization (lzma_lzma_decoder_init() passes function pointer to
|
|
966
|
-
/// the LZ initialization).
|
|
967
|
-
static lzma_ret
|
|
968
|
-
lzma_decoder_init(lzma_lz_decoder *lz, const lzma_allocator *allocator,
|
|
969
|
-
const void *options, lzma_lz_options *lz_options)
|
|
970
|
-
{
|
|
971
|
-
if (!is_lclppb_valid(options))
|
|
972
|
-
return LZMA_PROG_ERROR;
|
|
973
|
-
|
|
974
|
-
return_if_error(lzma_lzma_decoder_create(
|
|
975
|
-
lz, allocator, options, lz_options));
|
|
976
|
-
|
|
977
|
-
lzma_decoder_reset(lz->coder, options);
|
|
978
|
-
lzma_decoder_uncompressed(lz->coder, LZMA_VLI_UNKNOWN);
|
|
979
|
-
|
|
980
|
-
return LZMA_OK;
|
|
981
|
-
}
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
extern lzma_ret
|
|
985
|
-
lzma_lzma_decoder_init(lzma_next_coder *next, const lzma_allocator *allocator,
|
|
986
|
-
const lzma_filter_info *filters)
|
|
987
|
-
{
|
|
988
|
-
// LZMA can only be the last filter in the chain. This is enforced
|
|
989
|
-
// by the raw_decoder initialization.
|
|
990
|
-
assert(filters[1].init == NULL);
|
|
991
|
-
|
|
992
|
-
return lzma_lz_decoder_init(next, allocator, filters,
|
|
993
|
-
&lzma_decoder_init);
|
|
994
|
-
}
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
extern bool
|
|
998
|
-
lzma_lzma_lclppb_decode(lzma_options_lzma *options, uint8_t byte)
|
|
999
|
-
{
|
|
1000
|
-
if (byte > (4 * 5 + 4) * 9 + 8)
|
|
1001
|
-
return true;
|
|
1002
|
-
|
|
1003
|
-
// See the file format specification to understand this.
|
|
1004
|
-
options->pb = byte / (9 * 5);
|
|
1005
|
-
byte -= options->pb * 9 * 5;
|
|
1006
|
-
options->lp = byte / 9;
|
|
1007
|
-
options->lc = byte - options->lp * 9;
|
|
1008
|
-
|
|
1009
|
-
return options->lc + options->lp > LZMA_LCLP_MAX;
|
|
1010
|
-
}
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
extern uint64_t
|
|
1014
|
-
lzma_lzma_decoder_memusage_nocheck(const void *options)
|
|
1015
|
-
{
|
|
1016
|
-
const lzma_options_lzma *const opt = options;
|
|
1017
|
-
return sizeof(lzma_coder) + lzma_lz_decoder_memusage(opt->dict_size);
|
|
1018
|
-
}
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
extern uint64_t
|
|
1022
|
-
lzma_lzma_decoder_memusage(const void *options)
|
|
1023
|
-
{
|
|
1024
|
-
if (!is_lclppb_valid(options))
|
|
1025
|
-
return UINT64_MAX;
|
|
1026
|
-
|
|
1027
|
-
return lzma_lzma_decoder_memusage_nocheck(options);
|
|
1028
|
-
}
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
extern lzma_ret
|
|
1032
|
-
lzma_lzma_props_decode(void **options, const lzma_allocator *allocator,
|
|
1033
|
-
const uint8_t *props, size_t props_size)
|
|
1034
|
-
{
|
|
1035
|
-
if (props_size != 5)
|
|
1036
|
-
return LZMA_OPTIONS_ERROR;
|
|
1037
|
-
|
|
1038
|
-
lzma_options_lzma *opt
|
|
1039
|
-
= lzma_alloc(sizeof(lzma_options_lzma), allocator);
|
|
1040
|
-
if (opt == NULL)
|
|
1041
|
-
return LZMA_MEM_ERROR;
|
|
1042
|
-
|
|
1043
|
-
if (lzma_lzma_lclppb_decode(opt, props[0]))
|
|
1044
|
-
goto error;
|
|
1045
|
-
|
|
1046
|
-
// All dictionary sizes are accepted, including zero. LZ decoder
|
|
1047
|
-
// will automatically use a dictionary at least a few KiB even if
|
|
1048
|
-
// a smaller dictionary is requested.
|
|
1049
|
-
opt->dict_size = unaligned_read32le(props + 1);
|
|
1050
|
-
|
|
1051
|
-
opt->preset_dict = NULL;
|
|
1052
|
-
opt->preset_dict_size = 0;
|
|
1053
|
-
|
|
1054
|
-
*options = opt;
|
|
1055
|
-
|
|
1056
|
-
return LZMA_OK;
|
|
1057
|
-
|
|
1058
|
-
error:
|
|
1059
|
-
lzma_free(opt, allocator);
|
|
1060
|
-
return LZMA_OPTIONS_ERROR;
|
|
1061
|
-
}
|