node-liblzma 1.0.4 → 1.1.4

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.
Files changed (880) hide show
  1. package/History.md +5 -0
  2. package/README.md +65 -37
  3. package/binding.gyp +671 -43
  4. package/package.json +39 -24
  5. package/prebuilds/linux-x64/node_lzma.node +0 -0
  6. package/prebuilds/mac-x64/node_lzma.node +0 -0
  7. package/prebuilds/win-x64/node_lzma.node +0 -0
  8. package/scripts/download_extract_deps.py +29 -0
  9. package/scripts/prebuildify.py +13 -0
  10. package/scripts/walk_sources.py +7 -0
  11. package/src/bindings/module.cpp +86 -86
  12. package/src/bindings/node-liblzma.cpp +292 -273
  13. package/src/bindings/node-liblzma.hpp +62 -90
  14. package/src/lzma.coffee +25 -18
  15. package/.npmignore +0 -1
  16. package/.travis.yml +0 -35
  17. package/build/Makefile +0 -329
  18. package/build/Release/.deps/Release/node-liblzma.node.d +0 -1
  19. package/build/Release/.deps/Release/obj.target/action_after_build.stamp.d +0 -1
  20. package/build/Release/.deps/Release/obj.target/node-liblzma/src/bindings/module.o.d +0 -89
  21. package/build/Release/.deps/Release/obj.target/node-liblzma/src/bindings/node-liblzma.o.d +0 -89
  22. package/build/Release/.deps/Release/obj.target/node-liblzma.node.d +0 -1
  23. package/build/Release/.deps/home/o2/dev/node-liblzma/build/node-liblzma.node.d +0 -1
  24. package/build/Release/node-liblzma.node +0 -0
  25. package/build/Release/obj.target/action_after_build.stamp +0 -0
  26. package/build/Release/obj.target/node-liblzma/src/bindings/module.o +0 -0
  27. package/build/Release/obj.target/node-liblzma/src/bindings/node-liblzma.o +0 -0
  28. package/build/Release/obj.target/node-liblzma.node +0 -0
  29. package/build/action_after_build.target.mk +0 -32
  30. package/build/binding.Makefile +0 -6
  31. package/build/config.gypi +0 -143
  32. package/build/node-liblzma.node +0 -0
  33. package/build/node-liblzma.target.mk +0 -144
  34. package/build.yml +0 -65
  35. package/deps/xz/ABOUT-NLS +0 -1327
  36. package/deps/xz/AUTHORS +0 -27
  37. package/deps/xz/COPYING +0 -65
  38. package/deps/xz/COPYING.GPLv2 +0 -339
  39. package/deps/xz/COPYING.GPLv3 +0 -674
  40. package/deps/xz/COPYING.LGPLv2.1 +0 -502
  41. package/deps/xz/ChangeLog +0 -14953
  42. package/deps/xz/Doxyfile +0 -1234
  43. package/deps/xz/Doxyfile.in +0 -1234
  44. package/deps/xz/INSTALL +0 -554
  45. package/deps/xz/INSTALL.generic +0 -365
  46. package/deps/xz/Makefile +0 -1067
  47. package/deps/xz/Makefile.am +0 -109
  48. package/deps/xz/Makefile.in +0 -1067
  49. package/deps/xz/NEWS +0 -505
  50. package/deps/xz/PACKAGERS +0 -231
  51. package/deps/xz/README +0 -308
  52. package/deps/xz/THANKS +0 -116
  53. package/deps/xz/TODO +0 -111
  54. package/deps/xz/aclocal.m4 +0 -1225
  55. package/deps/xz/autogen.sh +0 -22
  56. package/deps/xz/autom4te.cache/output.0 +0 -21751
  57. package/deps/xz/autom4te.cache/output.1 +0 -21751
  58. package/deps/xz/autom4te.cache/requests +0 -415
  59. package/deps/xz/autom4te.cache/traces.0 +0 -6996
  60. package/deps/xz/autom4te.cache/traces.1 +0 -1783
  61. package/deps/xz/build-aux/compile +0 -347
  62. package/deps/xz/build-aux/config.guess +0 -1558
  63. package/deps/xz/build-aux/config.rpath +0 -672
  64. package/deps/xz/build-aux/config.sub +0 -1791
  65. package/deps/xz/build-aux/depcomp +0 -791
  66. package/deps/xz/build-aux/install-sh +0 -527
  67. package/deps/xz/build-aux/ltmain.sh +0 -9661
  68. package/deps/xz/build-aux/manconv.sh +0 -58
  69. package/deps/xz/build-aux/missing +0 -215
  70. package/deps/xz/build-aux/version.sh +0 -24
  71. package/deps/xz/config.h +0 -487
  72. package/deps/xz/config.h.in +0 -486
  73. package/deps/xz/config.h.in~ +0 -485
  74. package/deps/xz/config.log +0 -5446
  75. package/deps/xz/config.status +0 -2587
  76. package/deps/xz/configure +0 -21751
  77. package/deps/xz/configure.ac +0 -842
  78. package/deps/xz/debug/.deps/crc32.Po +0 -1
  79. package/deps/xz/debug/.deps/full_flush.Po +0 -1
  80. package/deps/xz/debug/.deps/hex2bin.Po +0 -1
  81. package/deps/xz/debug/.deps/known_sizes.Po +0 -1
  82. package/deps/xz/debug/.deps/memusage.Po +0 -1
  83. package/deps/xz/debug/.deps/repeat.Po +0 -1
  84. package/deps/xz/debug/.deps/sync_flush.Po +0 -1
  85. package/deps/xz/debug/Makefile +0 -691
  86. package/deps/xz/debug/Makefile.am +0 -30
  87. package/deps/xz/debug/Makefile.in +0 -691
  88. package/deps/xz/debug/README +0 -17
  89. package/deps/xz/debug/crc32.c +0 -39
  90. package/deps/xz/debug/full_flush.c +0 -103
  91. package/deps/xz/debug/hex2bin.c +0 -53
  92. package/deps/xz/debug/known_sizes.c +0 -129
  93. package/deps/xz/debug/memusage.c +0 -51
  94. package/deps/xz/debug/repeat.c +0 -36
  95. package/deps/xz/debug/sync_flush.c +0 -125
  96. package/deps/xz/debug/translation.bash +0 -100
  97. package/deps/xz/doc/examples/00_README.txt +0 -31
  98. package/deps/xz/doc/examples/01_compress_easy.c +0 -297
  99. package/deps/xz/doc/examples/02_decompress.c +0 -287
  100. package/deps/xz/doc/examples/03_compress_custom.c +0 -193
  101. package/deps/xz/doc/examples/04_compress_easy_mt.c +0 -206
  102. package/deps/xz/doc/examples/Makefile +0 -24
  103. package/deps/xz/doc/examples_old/xz_pipe_comp.c +0 -127
  104. package/deps/xz/doc/examples_old/xz_pipe_decomp.c +0 -123
  105. package/deps/xz/doc/faq.txt +0 -224
  106. package/deps/xz/doc/history.txt +0 -150
  107. package/deps/xz/doc/lzma-file-format.txt +0 -166
  108. package/deps/xz/doc/man/pdf-a4/lzmainfo-a4.pdf +0 -0
  109. package/deps/xz/doc/man/pdf-a4/xz-a4.pdf +0 -0
  110. package/deps/xz/doc/man/pdf-a4/xzdec-a4.pdf +0 -0
  111. package/deps/xz/doc/man/pdf-a4/xzdiff-a4.pdf +0 -0
  112. package/deps/xz/doc/man/pdf-a4/xzgrep-a4.pdf +0 -0
  113. package/deps/xz/doc/man/pdf-a4/xzless-a4.pdf +0 -0
  114. package/deps/xz/doc/man/pdf-a4/xzmore-a4.pdf +0 -0
  115. package/deps/xz/doc/man/pdf-letter/lzmainfo-letter.pdf +0 -0
  116. package/deps/xz/doc/man/pdf-letter/xz-letter.pdf +0 -0
  117. package/deps/xz/doc/man/pdf-letter/xzdec-letter.pdf +0 -0
  118. package/deps/xz/doc/man/pdf-letter/xzdiff-letter.pdf +0 -0
  119. package/deps/xz/doc/man/pdf-letter/xzgrep-letter.pdf +0 -0
  120. package/deps/xz/doc/man/pdf-letter/xzless-letter.pdf +0 -0
  121. package/deps/xz/doc/man/pdf-letter/xzmore-letter.pdf +0 -0
  122. package/deps/xz/doc/man/txt/lzmainfo.txt +0 -40
  123. package/deps/xz/doc/man/txt/xz.txt +0 -1483
  124. package/deps/xz/doc/man/txt/xzdec.txt +0 -80
  125. package/deps/xz/doc/man/txt/xzdiff.txt +0 -36
  126. package/deps/xz/doc/man/txt/xzgrep.txt +0 -39
  127. package/deps/xz/doc/man/txt/xzless.txt +0 -39
  128. package/deps/xz/doc/man/txt/xzmore.txt +0 -34
  129. package/deps/xz/doc/xz-file-format.txt +0 -1150
  130. package/deps/xz/dos/INSTALL.txt +0 -79
  131. package/deps/xz/dos/Makefile +0 -147
  132. package/deps/xz/dos/README.txt +0 -123
  133. package/deps/xz/dos/config.h +0 -130
  134. package/deps/xz/extra/7z2lzma/7z2lzma.bash +0 -115
  135. package/deps/xz/extra/scanlzma/scanlzma.c +0 -84
  136. package/deps/xz/include/lzma/base.h +0 -654
  137. package/deps/xz/include/lzma/bcj.h +0 -90
  138. package/deps/xz/include/lzma/block.h +0 -581
  139. package/deps/xz/include/lzma/check.h +0 -150
  140. package/deps/xz/include/lzma/container.h +0 -619
  141. package/deps/xz/include/lzma/delta.h +0 -77
  142. package/deps/xz/include/lzma/filter.h +0 -425
  143. package/deps/xz/include/lzma/hardware.h +0 -64
  144. package/deps/xz/include/lzma/index.h +0 -682
  145. package/deps/xz/include/lzma/index_hash.h +0 -107
  146. package/deps/xz/include/lzma/lzma12.h +0 -420
  147. package/deps/xz/include/lzma/stream_flags.h +0 -223
  148. package/deps/xz/include/lzma/version.h +0 -121
  149. package/deps/xz/include/lzma/vli.h +0 -166
  150. package/deps/xz/include/lzma.h +0 -321
  151. package/deps/xz/lib/.deps/getopt.Po +0 -1
  152. package/deps/xz/lib/.deps/getopt1.Po +0 -1
  153. package/deps/xz/lib/Makefile +0 -566
  154. package/deps/xz/lib/Makefile.am +0 -32
  155. package/deps/xz/lib/Makefile.in +0 -566
  156. package/deps/xz/lib/getopt.c +0 -1197
  157. package/deps/xz/lib/getopt.in.h +0 -226
  158. package/deps/xz/lib/getopt1.c +0 -171
  159. package/deps/xz/lib/getopt_int.h +0 -131
  160. package/deps/xz/lib/liblzma.a +0 -0
  161. package/deps/xz/lib/liblzma.la +0 -41
  162. package/deps/xz/lib/pkgconfig/liblzma.pc +0 -19
  163. package/deps/xz/libtool +0 -10221
  164. package/deps/xz/m4/ax_pthread.m4 +0 -332
  165. package/deps/xz/m4/codeset.m4 +0 -21
  166. package/deps/xz/m4/fcntl-o.m4 +0 -81
  167. package/deps/xz/m4/getopt.m4 +0 -71
  168. package/deps/xz/m4/gettext.m4 +0 -383
  169. package/deps/xz/m4/glibc2.m4 +0 -30
  170. package/deps/xz/m4/glibc21.m4 +0 -30
  171. package/deps/xz/m4/iconv.m4 +0 -199
  172. package/deps/xz/m4/intdiv0.m4 +0 -84
  173. package/deps/xz/m4/intl.m4 +0 -294
  174. package/deps/xz/m4/intldir.m4 +0 -19
  175. package/deps/xz/m4/intlmacosx.m4 +0 -51
  176. package/deps/xz/m4/intmax.m4 +0 -33
  177. package/deps/xz/m4/inttypes-pri.m4 +0 -36
  178. package/deps/xz/m4/inttypes_h.m4 +0 -26
  179. package/deps/xz/m4/lcmessage.m4 +0 -31
  180. package/deps/xz/m4/lib-ld.m4 +0 -110
  181. package/deps/xz/m4/lib-link.m4 +0 -774
  182. package/deps/xz/m4/lib-prefix.m4 +0 -224
  183. package/deps/xz/m4/libtool.m4 +0 -7997
  184. package/deps/xz/m4/lock.m4 +0 -37
  185. package/deps/xz/m4/longlong.m4 +0 -106
  186. package/deps/xz/m4/ltoptions.m4 +0 -384
  187. package/deps/xz/m4/ltsugar.m4 +0 -123
  188. package/deps/xz/m4/ltversion.m4 +0 -23
  189. package/deps/xz/m4/lt~obsolete.m4 +0 -98
  190. package/deps/xz/m4/nls.m4 +0 -32
  191. package/deps/xz/m4/po.m4 +0 -449
  192. package/deps/xz/m4/posix-shell.m4 +0 -63
  193. package/deps/xz/m4/printf-posix.m4 +0 -45
  194. package/deps/xz/m4/progtest.m4 +0 -92
  195. package/deps/xz/m4/size_max.m4 +0 -75
  196. package/deps/xz/m4/stdint_h.m4 +0 -26
  197. package/deps/xz/m4/threadlib.m4 +0 -347
  198. package/deps/xz/m4/tuklib_common.m4 +0 -22
  199. package/deps/xz/m4/tuklib_cpucores.m4 +0 -148
  200. package/deps/xz/m4/tuklib_integer.m4 +0 -74
  201. package/deps/xz/m4/tuklib_mbstr.m4 +0 -30
  202. package/deps/xz/m4/tuklib_physmem.m4 +0 -212
  203. package/deps/xz/m4/tuklib_progname.m4 +0 -25
  204. package/deps/xz/m4/uintmax_t.m4 +0 -30
  205. package/deps/xz/m4/visibility.m4 +0 -74
  206. package/deps/xz/m4/wchar_t.m4 +0 -20
  207. package/deps/xz/m4/wint_t.m4 +0 -28
  208. package/deps/xz/m4/xsize.m4 +0 -13
  209. package/deps/xz/macosx/build.sh +0 -113
  210. package/deps/xz/po/LINGUAS +0 -6
  211. package/deps/xz/po/Makefile +0 -549
  212. package/deps/xz/po/Makefile.in +0 -444
  213. package/deps/xz/po/Makefile.in.in +0 -444
  214. package/deps/xz/po/Makevars +0 -46
  215. package/deps/xz/po/Makevars.template +0 -41
  216. package/deps/xz/po/POTFILES +0 -12
  217. package/deps/xz/po/POTFILES.in +0 -13
  218. package/deps/xz/po/Rules-quot +0 -47
  219. package/deps/xz/po/boldquot.sed +0 -10
  220. package/deps/xz/po/cs.gmo +0 -0
  221. package/deps/xz/po/cs.po +0 -989
  222. package/deps/xz/po/de.gmo +0 -0
  223. package/deps/xz/po/de.po +0 -990
  224. package/deps/xz/po/en@boldquot.header +0 -25
  225. package/deps/xz/po/en@quot.header +0 -22
  226. package/deps/xz/po/fr.gmo +0 -0
  227. package/deps/xz/po/fr.po +0 -974
  228. package/deps/xz/po/insert-header.sin +0 -23
  229. package/deps/xz/po/it.gmo +0 -0
  230. package/deps/xz/po/it.po +0 -975
  231. package/deps/xz/po/pl.gmo +0 -0
  232. package/deps/xz/po/pl.po +0 -964
  233. package/deps/xz/po/quot.sed +0 -6
  234. package/deps/xz/po/remove-potcdate.sin +0 -19
  235. package/deps/xz/po/stamp-po +0 -1
  236. package/deps/xz/po/vi.gmo +0 -0
  237. package/deps/xz/po/vi.po +0 -970
  238. package/deps/xz/po/xz.pot +0 -854
  239. package/deps/xz/share/doc/xz/AUTHORS +0 -27
  240. package/deps/xz/share/doc/xz/COPYING +0 -65
  241. package/deps/xz/share/doc/xz/COPYING.GPLv2 +0 -339
  242. package/deps/xz/share/doc/xz/NEWS +0 -505
  243. package/deps/xz/share/doc/xz/README +0 -308
  244. package/deps/xz/share/doc/xz/THANKS +0 -116
  245. package/deps/xz/share/doc/xz/TODO +0 -111
  246. package/deps/xz/share/doc/xz/examples/00_README.txt +0 -31
  247. package/deps/xz/share/doc/xz/examples/01_compress_easy.c +0 -297
  248. package/deps/xz/share/doc/xz/examples/02_decompress.c +0 -287
  249. package/deps/xz/share/doc/xz/examples/03_compress_custom.c +0 -193
  250. package/deps/xz/share/doc/xz/examples/04_compress_easy_mt.c +0 -206
  251. package/deps/xz/share/doc/xz/examples/Makefile +0 -24
  252. package/deps/xz/share/doc/xz/examples_old/xz_pipe_comp.c +0 -127
  253. package/deps/xz/share/doc/xz/examples_old/xz_pipe_decomp.c +0 -123
  254. package/deps/xz/share/doc/xz/faq.txt +0 -224
  255. package/deps/xz/share/doc/xz/history.txt +0 -150
  256. package/deps/xz/share/doc/xz/lzma-file-format.txt +0 -166
  257. package/deps/xz/share/doc/xz/xz-file-format.txt +0 -1150
  258. package/deps/xz/share/locale/cs/LC_MESSAGES/xz.mo +0 -0
  259. package/deps/xz/share/locale/de/LC_MESSAGES/xz.mo +0 -0
  260. package/deps/xz/share/locale/fr/LC_MESSAGES/xz.mo +0 -0
  261. package/deps/xz/share/locale/it/LC_MESSAGES/xz.mo +0 -0
  262. package/deps/xz/share/locale/pl/LC_MESSAGES/xz.mo +0 -0
  263. package/deps/xz/share/locale/vi/LC_MESSAGES/xz.mo +0 -0
  264. package/deps/xz/src/Makefile +0 -674
  265. package/deps/xz/src/Makefile.am +0 -42
  266. package/deps/xz/src/Makefile.in +0 -674
  267. package/deps/xz/src/common/common_w32res.rc +0 -50
  268. package/deps/xz/src/common/mythread.h +0 -521
  269. package/deps/xz/src/common/sysdefs.h +0 -202
  270. package/deps/xz/src/common/tuklib_common.h +0 -71
  271. package/deps/xz/src/common/tuklib_config.h +0 -7
  272. package/deps/xz/src/common/tuklib_cpucores.c +0 -91
  273. package/deps/xz/src/common/tuklib_cpucores.h +0 -23
  274. package/deps/xz/src/common/tuklib_exit.c +0 -57
  275. package/deps/xz/src/common/tuklib_exit.h +0 -25
  276. package/deps/xz/src/common/tuklib_gettext.h +0 -44
  277. package/deps/xz/src/common/tuklib_integer.h +0 -523
  278. package/deps/xz/src/common/tuklib_mbstr.h +0 -66
  279. package/deps/xz/src/common/tuklib_mbstr_fw.c +0 -31
  280. package/deps/xz/src/common/tuklib_mbstr_width.c +0 -64
  281. package/deps/xz/src/common/tuklib_open_stdxxx.c +0 -57
  282. package/deps/xz/src/common/tuklib_open_stdxxx.h +0 -23
  283. package/deps/xz/src/common/tuklib_physmem.c +0 -215
  284. package/deps/xz/src/common/tuklib_physmem.h +0 -28
  285. package/deps/xz/src/common/tuklib_progname.c +0 -50
  286. package/deps/xz/src/common/tuklib_progname.h +0 -32
  287. package/deps/xz/src/liblzma/.deps/liblzma_la-alone_decoder.Plo +0 -269
  288. package/deps/xz/src/liblzma/.deps/liblzma_la-alone_encoder.Plo +0 -263
  289. package/deps/xz/src/liblzma/.deps/liblzma_la-arm.Plo +0 -263
  290. package/deps/xz/src/liblzma/.deps/liblzma_la-armthumb.Plo +0 -263
  291. package/deps/xz/src/liblzma/.deps/liblzma_la-auto_decoder.Plo +0 -263
  292. package/deps/xz/src/liblzma/.deps/liblzma_la-block_buffer_decoder.Plo +0 -261
  293. package/deps/xz/src/liblzma/.deps/liblzma_la-block_buffer_encoder.Plo +0 -273
  294. package/deps/xz/src/liblzma/.deps/liblzma_la-block_decoder.Plo +0 -268
  295. package/deps/xz/src/liblzma/.deps/liblzma_la-block_encoder.Plo +0 -268
  296. package/deps/xz/src/liblzma/.deps/liblzma_la-block_header_decoder.Plo +0 -263
  297. package/deps/xz/src/liblzma/.deps/liblzma_la-block_header_encoder.Plo +0 -263
  298. package/deps/xz/src/liblzma/.deps/liblzma_la-block_util.Plo +0 -260
  299. package/deps/xz/src/liblzma/.deps/liblzma_la-check.Plo +0 -261
  300. package/deps/xz/src/liblzma/.deps/liblzma_la-common.Plo +0 -258
  301. package/deps/xz/src/liblzma/.deps/liblzma_la-crc32_fast.Plo +0 -263
  302. package/deps/xz/src/liblzma/.deps/liblzma_la-crc32_small.Plo +0 -1
  303. package/deps/xz/src/liblzma/.deps/liblzma_la-crc32_table.Plo +0 -260
  304. package/deps/xz/src/liblzma/.deps/liblzma_la-crc32_x86.Plo +0 -1
  305. package/deps/xz/src/liblzma/.deps/liblzma_la-crc64_fast.Plo +0 -263
  306. package/deps/xz/src/liblzma/.deps/liblzma_la-crc64_small.Plo +0 -1
  307. package/deps/xz/src/liblzma/.deps/liblzma_la-crc64_table.Plo +0 -260
  308. package/deps/xz/src/liblzma/.deps/liblzma_la-crc64_x86.Plo +0 -1
  309. package/deps/xz/src/liblzma/.deps/liblzma_la-delta_common.Plo +0 -263
  310. package/deps/xz/src/liblzma/.deps/liblzma_la-delta_decoder.Plo +0 -265
  311. package/deps/xz/src/liblzma/.deps/liblzma_la-delta_encoder.Plo +0 -265
  312. package/deps/xz/src/liblzma/.deps/liblzma_la-easy_buffer_encoder.Plo +0 -261
  313. package/deps/xz/src/liblzma/.deps/liblzma_la-easy_decoder_memusage.Plo +0 -261
  314. package/deps/xz/src/liblzma/.deps/liblzma_la-easy_encoder.Plo +0 -261
  315. package/deps/xz/src/liblzma/.deps/liblzma_la-easy_encoder_memusage.Plo +0 -261
  316. package/deps/xz/src/liblzma/.deps/liblzma_la-easy_preset.Plo +0 -261
  317. package/deps/xz/src/liblzma/.deps/liblzma_la-fastpos_table.Plo +0 -261
  318. package/deps/xz/src/liblzma/.deps/liblzma_la-filter_buffer_decoder.Plo +0 -261
  319. package/deps/xz/src/liblzma/.deps/liblzma_la-filter_buffer_encoder.Plo +0 -261
  320. package/deps/xz/src/liblzma/.deps/liblzma_la-filter_common.Plo +0 -261
  321. package/deps/xz/src/liblzma/.deps/liblzma_la-filter_decoder.Plo +0 -283
  322. package/deps/xz/src/liblzma/.deps/liblzma_la-filter_encoder.Plo +0 -283
  323. package/deps/xz/src/liblzma/.deps/liblzma_la-filter_flags_decoder.Plo +0 -261
  324. package/deps/xz/src/liblzma/.deps/liblzma_la-filter_flags_encoder.Plo +0 -261
  325. package/deps/xz/src/liblzma/.deps/liblzma_la-hardware_cputhreads.Plo +0 -260
  326. package/deps/xz/src/liblzma/.deps/liblzma_la-hardware_physmem.Plo +0 -260
  327. package/deps/xz/src/liblzma/.deps/liblzma_la-ia64.Plo +0 -263
  328. package/deps/xz/src/liblzma/.deps/liblzma_la-index.Plo +0 -262
  329. package/deps/xz/src/liblzma/.deps/liblzma_la-index_decoder.Plo +0 -266
  330. package/deps/xz/src/liblzma/.deps/liblzma_la-index_encoder.Plo +0 -268
  331. package/deps/xz/src/liblzma/.deps/liblzma_la-index_hash.Plo +0 -265
  332. package/deps/xz/src/liblzma/.deps/liblzma_la-lz_decoder.Plo +0 -261
  333. package/deps/xz/src/liblzma/.deps/liblzma_la-lz_encoder.Plo +0 -286
  334. package/deps/xz/src/liblzma/.deps/liblzma_la-lz_encoder_mf.Plo +0 -286
  335. package/deps/xz/src/liblzma/.deps/liblzma_la-lzma2_decoder.Plo +0 -266
  336. package/deps/xz/src/liblzma/.deps/liblzma_la-lzma2_encoder.Plo +0 -268
  337. package/deps/xz/src/liblzma/.deps/liblzma_la-lzma_decoder.Plo +0 -274
  338. package/deps/xz/src/liblzma/.deps/liblzma_la-lzma_encoder.Plo +0 -285
  339. package/deps/xz/src/liblzma/.deps/liblzma_la-lzma_encoder_optimum_fast.Plo +0 -300
  340. package/deps/xz/src/liblzma/.deps/liblzma_la-lzma_encoder_optimum_normal.Plo +0 -303
  341. package/deps/xz/src/liblzma/.deps/liblzma_la-lzma_encoder_presets.Plo +0 -259
  342. package/deps/xz/src/liblzma/.deps/liblzma_la-outqueue.Plo +0 -260
  343. package/deps/xz/src/liblzma/.deps/liblzma_la-powerpc.Plo +0 -263
  344. package/deps/xz/src/liblzma/.deps/liblzma_la-price_table.Plo +0 -266
  345. package/deps/xz/src/liblzma/.deps/liblzma_la-sha256.Plo +0 -261
  346. package/deps/xz/src/liblzma/.deps/liblzma_la-simple_coder.Plo +0 -263
  347. package/deps/xz/src/liblzma/.deps/liblzma_la-simple_decoder.Plo +0 -263
  348. package/deps/xz/src/liblzma/.deps/liblzma_la-simple_encoder.Plo +0 -263
  349. package/deps/xz/src/liblzma/.deps/liblzma_la-sparc.Plo +0 -263
  350. package/deps/xz/src/liblzma/.deps/liblzma_la-stream_buffer_decoder.Plo +0 -261
  351. package/deps/xz/src/liblzma/.deps/liblzma_la-stream_buffer_encoder.Plo +0 -261
  352. package/deps/xz/src/liblzma/.deps/liblzma_la-stream_decoder.Plo +0 -263
  353. package/deps/xz/src/liblzma/.deps/liblzma_la-stream_encoder.Plo +0 -263
  354. package/deps/xz/src/liblzma/.deps/liblzma_la-stream_encoder_mt.Plo +0 -273
  355. package/deps/xz/src/liblzma/.deps/liblzma_la-stream_flags_common.Plo +0 -261
  356. package/deps/xz/src/liblzma/.deps/liblzma_la-stream_flags_decoder.Plo +0 -261
  357. package/deps/xz/src/liblzma/.deps/liblzma_la-stream_flags_encoder.Plo +0 -261
  358. package/deps/xz/src/liblzma/.deps/liblzma_la-tuklib_cpucores.Plo +0 -170
  359. package/deps/xz/src/liblzma/.deps/liblzma_la-tuklib_physmem.Plo +0 -170
  360. package/deps/xz/src/liblzma/.deps/liblzma_la-vli_decoder.Plo +0 -258
  361. package/deps/xz/src/liblzma/.deps/liblzma_la-vli_encoder.Plo +0 -258
  362. package/deps/xz/src/liblzma/.deps/liblzma_la-vli_size.Plo +0 -258
  363. package/deps/xz/src/liblzma/.deps/liblzma_la-x86.Plo +0 -263
  364. package/deps/xz/src/liblzma/.libs/liblzma.a +0 -0
  365. package/deps/xz/src/liblzma/.libs/liblzma.lai +0 -41
  366. package/deps/xz/src/liblzma/Makefile +0 -1858
  367. package/deps/xz/src/liblzma/Makefile.am +0 -122
  368. package/deps/xz/src/liblzma/Makefile.in +0 -1858
  369. package/deps/xz/src/liblzma/api/Makefile +0 -608
  370. package/deps/xz/src/liblzma/api/Makefile.am +0 -23
  371. package/deps/xz/src/liblzma/api/Makefile.in +0 -608
  372. package/deps/xz/src/liblzma/api/lzma/base.h +0 -654
  373. package/deps/xz/src/liblzma/api/lzma/bcj.h +0 -90
  374. package/deps/xz/src/liblzma/api/lzma/block.h +0 -581
  375. package/deps/xz/src/liblzma/api/lzma/check.h +0 -150
  376. package/deps/xz/src/liblzma/api/lzma/container.h +0 -619
  377. package/deps/xz/src/liblzma/api/lzma/delta.h +0 -77
  378. package/deps/xz/src/liblzma/api/lzma/filter.h +0 -425
  379. package/deps/xz/src/liblzma/api/lzma/hardware.h +0 -64
  380. package/deps/xz/src/liblzma/api/lzma/index.h +0 -682
  381. package/deps/xz/src/liblzma/api/lzma/index_hash.h +0 -107
  382. package/deps/xz/src/liblzma/api/lzma/lzma12.h +0 -420
  383. package/deps/xz/src/liblzma/api/lzma/stream_flags.h +0 -223
  384. package/deps/xz/src/liblzma/api/lzma/version.h +0 -121
  385. package/deps/xz/src/liblzma/api/lzma/vli.h +0 -166
  386. package/deps/xz/src/liblzma/api/lzma.h +0 -321
  387. package/deps/xz/src/liblzma/check/Makefile.inc +0 -53
  388. package/deps/xz/src/liblzma/check/check.c +0 -174
  389. package/deps/xz/src/liblzma/check/check.h +0 -162
  390. package/deps/xz/src/liblzma/check/crc32_fast.c +0 -82
  391. package/deps/xz/src/liblzma/check/crc32_small.c +0 -61
  392. package/deps/xz/src/liblzma/check/crc32_table.c +0 -19
  393. package/deps/xz/src/liblzma/check/crc32_table_be.h +0 -525
  394. package/deps/xz/src/liblzma/check/crc32_table_le.h +0 -525
  395. package/deps/xz/src/liblzma/check/crc32_tablegen.c +0 -117
  396. package/deps/xz/src/liblzma/check/crc32_x86.S +0 -304
  397. package/deps/xz/src/liblzma/check/crc64_fast.c +0 -72
  398. package/deps/xz/src/liblzma/check/crc64_small.c +0 -53
  399. package/deps/xz/src/liblzma/check/crc64_table.c +0 -19
  400. package/deps/xz/src/liblzma/check/crc64_table_be.h +0 -521
  401. package/deps/xz/src/liblzma/check/crc64_table_le.h +0 -521
  402. package/deps/xz/src/liblzma/check/crc64_tablegen.c +0 -88
  403. package/deps/xz/src/liblzma/check/crc64_x86.S +0 -287
  404. package/deps/xz/src/liblzma/check/crc_macros.h +0 -30
  405. package/deps/xz/src/liblzma/check/sha256.c +0 -196
  406. package/deps/xz/src/liblzma/common/Makefile.inc +0 -76
  407. package/deps/xz/src/liblzma/common/alone_decoder.c +0 -238
  408. package/deps/xz/src/liblzma/common/alone_decoder.h +0 -23
  409. package/deps/xz/src/liblzma/common/alone_encoder.c +0 -157
  410. package/deps/xz/src/liblzma/common/auto_decoder.c +0 -186
  411. package/deps/xz/src/liblzma/common/block_buffer_decoder.c +0 -80
  412. package/deps/xz/src/liblzma/common/block_buffer_encoder.c +0 -337
  413. package/deps/xz/src/liblzma/common/block_buffer_encoder.h +0 -24
  414. package/deps/xz/src/liblzma/common/block_decoder.c +0 -252
  415. package/deps/xz/src/liblzma/common/block_decoder.h +0 -22
  416. package/deps/xz/src/liblzma/common/block_encoder.c +0 -217
  417. package/deps/xz/src/liblzma/common/block_encoder.h +0 -47
  418. package/deps/xz/src/liblzma/common/block_header_decoder.c +0 -124
  419. package/deps/xz/src/liblzma/common/block_header_encoder.c +0 -132
  420. package/deps/xz/src/liblzma/common/block_util.c +0 -90
  421. package/deps/xz/src/liblzma/common/common.c +0 -443
  422. package/deps/xz/src/liblzma/common/common.h +0 -318
  423. package/deps/xz/src/liblzma/common/easy_buffer_encoder.c +0 -27
  424. package/deps/xz/src/liblzma/common/easy_decoder_memusage.c +0 -24
  425. package/deps/xz/src/liblzma/common/easy_encoder.c +0 -24
  426. package/deps/xz/src/liblzma/common/easy_encoder_memusage.c +0 -24
  427. package/deps/xz/src/liblzma/common/easy_preset.c +0 -27
  428. package/deps/xz/src/liblzma/common/easy_preset.h +0 -32
  429. package/deps/xz/src/liblzma/common/filter_buffer_decoder.c +0 -88
  430. package/deps/xz/src/liblzma/common/filter_buffer_encoder.c +0 -55
  431. package/deps/xz/src/liblzma/common/filter_common.c +0 -337
  432. package/deps/xz/src/liblzma/common/filter_common.h +0 -48
  433. package/deps/xz/src/liblzma/common/filter_decoder.c +0 -184
  434. package/deps/xz/src/liblzma/common/filter_decoder.h +0 -23
  435. package/deps/xz/src/liblzma/common/filter_encoder.c +0 -286
  436. package/deps/xz/src/liblzma/common/filter_encoder.h +0 -27
  437. package/deps/xz/src/liblzma/common/filter_flags_decoder.c +0 -46
  438. package/deps/xz/src/liblzma/common/filter_flags_encoder.c +0 -56
  439. package/deps/xz/src/liblzma/common/hardware_cputhreads.c +0 -22
  440. package/deps/xz/src/liblzma/common/hardware_physmem.c +0 -25
  441. package/deps/xz/src/liblzma/common/index.c +0 -1246
  442. package/deps/xz/src/liblzma/common/index.h +0 -73
  443. package/deps/xz/src/liblzma/common/index_decoder.c +0 -345
  444. package/deps/xz/src/liblzma/common/index_encoder.c +0 -254
  445. package/deps/xz/src/liblzma/common/index_encoder.h +0 -23
  446. package/deps/xz/src/liblzma/common/index_hash.c +0 -334
  447. package/deps/xz/src/liblzma/common/memcmplen.h +0 -175
  448. package/deps/xz/src/liblzma/common/outqueue.c +0 -184
  449. package/deps/xz/src/liblzma/common/outqueue.h +0 -156
  450. package/deps/xz/src/liblzma/common/stream_buffer_decoder.c +0 -91
  451. package/deps/xz/src/liblzma/common/stream_buffer_encoder.c +0 -141
  452. package/deps/xz/src/liblzma/common/stream_decoder.c +0 -462
  453. package/deps/xz/src/liblzma/common/stream_decoder.h +0 -22
  454. package/deps/xz/src/liblzma/common/stream_encoder.c +0 -332
  455. package/deps/xz/src/liblzma/common/stream_encoder_mt.c +0 -1131
  456. package/deps/xz/src/liblzma/common/stream_flags_common.c +0 -47
  457. package/deps/xz/src/liblzma/common/stream_flags_common.h +0 -33
  458. package/deps/xz/src/liblzma/common/stream_flags_decoder.c +0 -82
  459. package/deps/xz/src/liblzma/common/stream_flags_encoder.c +0 -86
  460. package/deps/xz/src/liblzma/common/vli_decoder.c +0 -86
  461. package/deps/xz/src/liblzma/common/vli_encoder.c +0 -69
  462. package/deps/xz/src/liblzma/common/vli_size.c +0 -30
  463. package/deps/xz/src/liblzma/delta/Makefile.inc +0 -23
  464. package/deps/xz/src/liblzma/delta/delta_common.c +0 -70
  465. package/deps/xz/src/liblzma/delta/delta_common.h +0 -20
  466. package/deps/xz/src/liblzma/delta/delta_decoder.c +0 -76
  467. package/deps/xz/src/liblzma/delta/delta_decoder.h +0 -26
  468. package/deps/xz/src/liblzma/delta/delta_encoder.c +0 -121
  469. package/deps/xz/src/liblzma/delta/delta_encoder.h +0 -24
  470. package/deps/xz/src/liblzma/delta/delta_private.h +0 -37
  471. package/deps/xz/src/liblzma/liblzma.la +0 -41
  472. package/deps/xz/src/liblzma/liblzma.map +0 -108
  473. package/deps/xz/src/liblzma/liblzma.pc +0 -19
  474. package/deps/xz/src/liblzma/liblzma.pc.in +0 -19
  475. package/deps/xz/src/liblzma/liblzma_la-alone_decoder.lo +0 -12
  476. package/deps/xz/src/liblzma/liblzma_la-alone_decoder.o +0 -0
  477. package/deps/xz/src/liblzma/liblzma_la-alone_encoder.lo +0 -12
  478. package/deps/xz/src/liblzma/liblzma_la-alone_encoder.o +0 -0
  479. package/deps/xz/src/liblzma/liblzma_la-arm.lo +0 -12
  480. package/deps/xz/src/liblzma/liblzma_la-arm.o +0 -0
  481. package/deps/xz/src/liblzma/liblzma_la-armthumb.lo +0 -12
  482. package/deps/xz/src/liblzma/liblzma_la-armthumb.o +0 -0
  483. package/deps/xz/src/liblzma/liblzma_la-auto_decoder.lo +0 -12
  484. package/deps/xz/src/liblzma/liblzma_la-auto_decoder.o +0 -0
  485. package/deps/xz/src/liblzma/liblzma_la-block_buffer_decoder.lo +0 -12
  486. package/deps/xz/src/liblzma/liblzma_la-block_buffer_decoder.o +0 -0
  487. package/deps/xz/src/liblzma/liblzma_la-block_buffer_encoder.lo +0 -12
  488. package/deps/xz/src/liblzma/liblzma_la-block_buffer_encoder.o +0 -0
  489. package/deps/xz/src/liblzma/liblzma_la-block_decoder.lo +0 -12
  490. package/deps/xz/src/liblzma/liblzma_la-block_decoder.o +0 -0
  491. package/deps/xz/src/liblzma/liblzma_la-block_encoder.lo +0 -12
  492. package/deps/xz/src/liblzma/liblzma_la-block_encoder.o +0 -0
  493. package/deps/xz/src/liblzma/liblzma_la-block_header_decoder.lo +0 -12
  494. package/deps/xz/src/liblzma/liblzma_la-block_header_decoder.o +0 -0
  495. package/deps/xz/src/liblzma/liblzma_la-block_header_encoder.lo +0 -12
  496. package/deps/xz/src/liblzma/liblzma_la-block_header_encoder.o +0 -0
  497. package/deps/xz/src/liblzma/liblzma_la-block_util.lo +0 -12
  498. package/deps/xz/src/liblzma/liblzma_la-block_util.o +0 -0
  499. package/deps/xz/src/liblzma/liblzma_la-check.lo +0 -12
  500. package/deps/xz/src/liblzma/liblzma_la-check.o +0 -0
  501. package/deps/xz/src/liblzma/liblzma_la-common.lo +0 -12
  502. package/deps/xz/src/liblzma/liblzma_la-common.o +0 -0
  503. package/deps/xz/src/liblzma/liblzma_la-crc32_fast.lo +0 -12
  504. package/deps/xz/src/liblzma/liblzma_la-crc32_fast.o +0 -0
  505. package/deps/xz/src/liblzma/liblzma_la-crc32_table.lo +0 -12
  506. package/deps/xz/src/liblzma/liblzma_la-crc32_table.o +0 -0
  507. package/deps/xz/src/liblzma/liblzma_la-crc64_fast.lo +0 -12
  508. package/deps/xz/src/liblzma/liblzma_la-crc64_fast.o +0 -0
  509. package/deps/xz/src/liblzma/liblzma_la-crc64_table.lo +0 -12
  510. package/deps/xz/src/liblzma/liblzma_la-crc64_table.o +0 -0
  511. package/deps/xz/src/liblzma/liblzma_la-delta_common.lo +0 -12
  512. package/deps/xz/src/liblzma/liblzma_la-delta_common.o +0 -0
  513. package/deps/xz/src/liblzma/liblzma_la-delta_decoder.lo +0 -12
  514. package/deps/xz/src/liblzma/liblzma_la-delta_decoder.o +0 -0
  515. package/deps/xz/src/liblzma/liblzma_la-delta_encoder.lo +0 -12
  516. package/deps/xz/src/liblzma/liblzma_la-delta_encoder.o +0 -0
  517. package/deps/xz/src/liblzma/liblzma_la-easy_buffer_encoder.lo +0 -12
  518. package/deps/xz/src/liblzma/liblzma_la-easy_buffer_encoder.o +0 -0
  519. package/deps/xz/src/liblzma/liblzma_la-easy_decoder_memusage.lo +0 -12
  520. package/deps/xz/src/liblzma/liblzma_la-easy_decoder_memusage.o +0 -0
  521. package/deps/xz/src/liblzma/liblzma_la-easy_encoder.lo +0 -12
  522. package/deps/xz/src/liblzma/liblzma_la-easy_encoder.o +0 -0
  523. package/deps/xz/src/liblzma/liblzma_la-easy_encoder_memusage.lo +0 -12
  524. package/deps/xz/src/liblzma/liblzma_la-easy_encoder_memusage.o +0 -0
  525. package/deps/xz/src/liblzma/liblzma_la-easy_preset.lo +0 -12
  526. package/deps/xz/src/liblzma/liblzma_la-easy_preset.o +0 -0
  527. package/deps/xz/src/liblzma/liblzma_la-fastpos_table.lo +0 -12
  528. package/deps/xz/src/liblzma/liblzma_la-fastpos_table.o +0 -0
  529. package/deps/xz/src/liblzma/liblzma_la-filter_buffer_decoder.lo +0 -12
  530. package/deps/xz/src/liblzma/liblzma_la-filter_buffer_decoder.o +0 -0
  531. package/deps/xz/src/liblzma/liblzma_la-filter_buffer_encoder.lo +0 -12
  532. package/deps/xz/src/liblzma/liblzma_la-filter_buffer_encoder.o +0 -0
  533. package/deps/xz/src/liblzma/liblzma_la-filter_common.lo +0 -12
  534. package/deps/xz/src/liblzma/liblzma_la-filter_common.o +0 -0
  535. package/deps/xz/src/liblzma/liblzma_la-filter_decoder.lo +0 -12
  536. package/deps/xz/src/liblzma/liblzma_la-filter_decoder.o +0 -0
  537. package/deps/xz/src/liblzma/liblzma_la-filter_encoder.lo +0 -12
  538. package/deps/xz/src/liblzma/liblzma_la-filter_encoder.o +0 -0
  539. package/deps/xz/src/liblzma/liblzma_la-filter_flags_decoder.lo +0 -12
  540. package/deps/xz/src/liblzma/liblzma_la-filter_flags_decoder.o +0 -0
  541. package/deps/xz/src/liblzma/liblzma_la-filter_flags_encoder.lo +0 -12
  542. package/deps/xz/src/liblzma/liblzma_la-filter_flags_encoder.o +0 -0
  543. package/deps/xz/src/liblzma/liblzma_la-hardware_cputhreads.lo +0 -12
  544. package/deps/xz/src/liblzma/liblzma_la-hardware_cputhreads.o +0 -0
  545. package/deps/xz/src/liblzma/liblzma_la-hardware_physmem.lo +0 -12
  546. package/deps/xz/src/liblzma/liblzma_la-hardware_physmem.o +0 -0
  547. package/deps/xz/src/liblzma/liblzma_la-ia64.lo +0 -12
  548. package/deps/xz/src/liblzma/liblzma_la-ia64.o +0 -0
  549. package/deps/xz/src/liblzma/liblzma_la-index.lo +0 -12
  550. package/deps/xz/src/liblzma/liblzma_la-index.o +0 -0
  551. package/deps/xz/src/liblzma/liblzma_la-index_decoder.lo +0 -12
  552. package/deps/xz/src/liblzma/liblzma_la-index_decoder.o +0 -0
  553. package/deps/xz/src/liblzma/liblzma_la-index_encoder.lo +0 -12
  554. package/deps/xz/src/liblzma/liblzma_la-index_encoder.o +0 -0
  555. package/deps/xz/src/liblzma/liblzma_la-index_hash.lo +0 -12
  556. package/deps/xz/src/liblzma/liblzma_la-index_hash.o +0 -0
  557. package/deps/xz/src/liblzma/liblzma_la-lz_decoder.lo +0 -12
  558. package/deps/xz/src/liblzma/liblzma_la-lz_decoder.o +0 -0
  559. package/deps/xz/src/liblzma/liblzma_la-lz_encoder.lo +0 -12
  560. package/deps/xz/src/liblzma/liblzma_la-lz_encoder.o +0 -0
  561. package/deps/xz/src/liblzma/liblzma_la-lz_encoder_mf.lo +0 -12
  562. package/deps/xz/src/liblzma/liblzma_la-lz_encoder_mf.o +0 -0
  563. package/deps/xz/src/liblzma/liblzma_la-lzma2_decoder.lo +0 -12
  564. package/deps/xz/src/liblzma/liblzma_la-lzma2_decoder.o +0 -0
  565. package/deps/xz/src/liblzma/liblzma_la-lzma2_encoder.lo +0 -12
  566. package/deps/xz/src/liblzma/liblzma_la-lzma2_encoder.o +0 -0
  567. package/deps/xz/src/liblzma/liblzma_la-lzma_decoder.lo +0 -12
  568. package/deps/xz/src/liblzma/liblzma_la-lzma_decoder.o +0 -0
  569. package/deps/xz/src/liblzma/liblzma_la-lzma_encoder.lo +0 -12
  570. package/deps/xz/src/liblzma/liblzma_la-lzma_encoder.o +0 -0
  571. package/deps/xz/src/liblzma/liblzma_la-lzma_encoder_optimum_fast.lo +0 -12
  572. package/deps/xz/src/liblzma/liblzma_la-lzma_encoder_optimum_fast.o +0 -0
  573. package/deps/xz/src/liblzma/liblzma_la-lzma_encoder_optimum_normal.lo +0 -12
  574. package/deps/xz/src/liblzma/liblzma_la-lzma_encoder_optimum_normal.o +0 -0
  575. package/deps/xz/src/liblzma/liblzma_la-lzma_encoder_presets.lo +0 -12
  576. package/deps/xz/src/liblzma/liblzma_la-lzma_encoder_presets.o +0 -0
  577. package/deps/xz/src/liblzma/liblzma_la-outqueue.lo +0 -12
  578. package/deps/xz/src/liblzma/liblzma_la-outqueue.o +0 -0
  579. package/deps/xz/src/liblzma/liblzma_la-powerpc.lo +0 -12
  580. package/deps/xz/src/liblzma/liblzma_la-powerpc.o +0 -0
  581. package/deps/xz/src/liblzma/liblzma_la-price_table.lo +0 -12
  582. package/deps/xz/src/liblzma/liblzma_la-price_table.o +0 -0
  583. package/deps/xz/src/liblzma/liblzma_la-sha256.lo +0 -12
  584. package/deps/xz/src/liblzma/liblzma_la-sha256.o +0 -0
  585. package/deps/xz/src/liblzma/liblzma_la-simple_coder.lo +0 -12
  586. package/deps/xz/src/liblzma/liblzma_la-simple_coder.o +0 -0
  587. package/deps/xz/src/liblzma/liblzma_la-simple_decoder.lo +0 -12
  588. package/deps/xz/src/liblzma/liblzma_la-simple_decoder.o +0 -0
  589. package/deps/xz/src/liblzma/liblzma_la-simple_encoder.lo +0 -12
  590. package/deps/xz/src/liblzma/liblzma_la-simple_encoder.o +0 -0
  591. package/deps/xz/src/liblzma/liblzma_la-sparc.lo +0 -12
  592. package/deps/xz/src/liblzma/liblzma_la-sparc.o +0 -0
  593. package/deps/xz/src/liblzma/liblzma_la-stream_buffer_decoder.lo +0 -12
  594. package/deps/xz/src/liblzma/liblzma_la-stream_buffer_decoder.o +0 -0
  595. package/deps/xz/src/liblzma/liblzma_la-stream_buffer_encoder.lo +0 -12
  596. package/deps/xz/src/liblzma/liblzma_la-stream_buffer_encoder.o +0 -0
  597. package/deps/xz/src/liblzma/liblzma_la-stream_decoder.lo +0 -12
  598. package/deps/xz/src/liblzma/liblzma_la-stream_decoder.o +0 -0
  599. package/deps/xz/src/liblzma/liblzma_la-stream_encoder.lo +0 -12
  600. package/deps/xz/src/liblzma/liblzma_la-stream_encoder.o +0 -0
  601. package/deps/xz/src/liblzma/liblzma_la-stream_encoder_mt.lo +0 -12
  602. package/deps/xz/src/liblzma/liblzma_la-stream_encoder_mt.o +0 -0
  603. package/deps/xz/src/liblzma/liblzma_la-stream_flags_common.lo +0 -12
  604. package/deps/xz/src/liblzma/liblzma_la-stream_flags_common.o +0 -0
  605. package/deps/xz/src/liblzma/liblzma_la-stream_flags_decoder.lo +0 -12
  606. package/deps/xz/src/liblzma/liblzma_la-stream_flags_decoder.o +0 -0
  607. package/deps/xz/src/liblzma/liblzma_la-stream_flags_encoder.lo +0 -12
  608. package/deps/xz/src/liblzma/liblzma_la-stream_flags_encoder.o +0 -0
  609. package/deps/xz/src/liblzma/liblzma_la-tuklib_cpucores.lo +0 -12
  610. package/deps/xz/src/liblzma/liblzma_la-tuklib_cpucores.o +0 -0
  611. package/deps/xz/src/liblzma/liblzma_la-tuklib_physmem.lo +0 -12
  612. package/deps/xz/src/liblzma/liblzma_la-tuklib_physmem.o +0 -0
  613. package/deps/xz/src/liblzma/liblzma_la-vli_decoder.lo +0 -12
  614. package/deps/xz/src/liblzma/liblzma_la-vli_decoder.o +0 -0
  615. package/deps/xz/src/liblzma/liblzma_la-vli_encoder.lo +0 -12
  616. package/deps/xz/src/liblzma/liblzma_la-vli_encoder.o +0 -0
  617. package/deps/xz/src/liblzma/liblzma_la-vli_size.lo +0 -12
  618. package/deps/xz/src/liblzma/liblzma_la-vli_size.o +0 -0
  619. package/deps/xz/src/liblzma/liblzma_la-x86.lo +0 -12
  620. package/deps/xz/src/liblzma/liblzma_la-x86.o +0 -0
  621. package/deps/xz/src/liblzma/liblzma_w32res.rc +0 -12
  622. package/deps/xz/src/liblzma/lz/Makefile.inc +0 -22
  623. package/deps/xz/src/liblzma/lz/lz_decoder.c +0 -300
  624. package/deps/xz/src/liblzma/lz/lz_decoder.h +0 -235
  625. package/deps/xz/src/liblzma/lz/lz_encoder.c +0 -605
  626. package/deps/xz/src/liblzma/lz/lz_encoder.h +0 -328
  627. package/deps/xz/src/liblzma/lz/lz_encoder_hash.h +0 -108
  628. package/deps/xz/src/liblzma/lz/lz_encoder_hash_table.h +0 -68
  629. package/deps/xz/src/liblzma/lz/lz_encoder_mf.c +0 -744
  630. package/deps/xz/src/liblzma/lzma/Makefile.inc +0 -43
  631. package/deps/xz/src/liblzma/lzma/fastpos.h +0 -141
  632. package/deps/xz/src/liblzma/lzma/fastpos_table.c +0 -519
  633. package/deps/xz/src/liblzma/lzma/fastpos_tablegen.c +0 -56
  634. package/deps/xz/src/liblzma/lzma/lzma2_decoder.c +0 -304
  635. package/deps/xz/src/liblzma/lzma/lzma2_decoder.h +0 -29
  636. package/deps/xz/src/liblzma/lzma/lzma2_encoder.c +0 -403
  637. package/deps/xz/src/liblzma/lzma/lzma2_encoder.h +0 -43
  638. package/deps/xz/src/liblzma/lzma/lzma_common.h +0 -224
  639. package/deps/xz/src/liblzma/lzma/lzma_decoder.c +0 -1061
  640. package/deps/xz/src/liblzma/lzma/lzma_decoder.h +0 -53
  641. package/deps/xz/src/liblzma/lzma/lzma_encoder.c +0 -676
  642. package/deps/xz/src/liblzma/lzma/lzma_encoder.h +0 -55
  643. package/deps/xz/src/liblzma/lzma/lzma_encoder_optimum_fast.c +0 -169
  644. package/deps/xz/src/liblzma/lzma/lzma_encoder_optimum_normal.c +0 -854
  645. package/deps/xz/src/liblzma/lzma/lzma_encoder_presets.c +0 -63
  646. package/deps/xz/src/liblzma/lzma/lzma_encoder_private.h +0 -148
  647. package/deps/xz/src/liblzma/rangecoder/Makefile.inc +0 -21
  648. package/deps/xz/src/liblzma/rangecoder/price.h +0 -92
  649. package/deps/xz/src/liblzma/rangecoder/price_table.c +0 -22
  650. package/deps/xz/src/liblzma/rangecoder/price_tablegen.c +0 -87
  651. package/deps/xz/src/liblzma/rangecoder/range_common.h +0 -73
  652. package/deps/xz/src/liblzma/rangecoder/range_decoder.h +0 -185
  653. package/deps/xz/src/liblzma/rangecoder/range_encoder.h +0 -231
  654. package/deps/xz/src/liblzma/simple/Makefile.inc +0 -47
  655. package/deps/xz/src/liblzma/simple/arm.c +0 -71
  656. package/deps/xz/src/liblzma/simple/armthumb.c +0 -76
  657. package/deps/xz/src/liblzma/simple/ia64.c +0 -112
  658. package/deps/xz/src/liblzma/simple/powerpc.c +0 -75
  659. package/deps/xz/src/liblzma/simple/simple_coder.c +0 -277
  660. package/deps/xz/src/liblzma/simple/simple_coder.h +0 -72
  661. package/deps/xz/src/liblzma/simple/simple_decoder.c +0 -40
  662. package/deps/xz/src/liblzma/simple/simple_decoder.h +0 -22
  663. package/deps/xz/src/liblzma/simple/simple_encoder.c +0 -38
  664. package/deps/xz/src/liblzma/simple/simple_encoder.h +0 -23
  665. package/deps/xz/src/liblzma/simple/simple_private.h +0 -76
  666. package/deps/xz/src/liblzma/simple/sparc.c +0 -83
  667. package/deps/xz/src/liblzma/simple/x86.c +0 -156
  668. package/deps/xz/src/liblzma/validate_map.sh +0 -68
  669. package/deps/xz/src/lzmainfo/.deps/lzmainfo-lzmainfo.Po +0 -1
  670. package/deps/xz/src/lzmainfo/.deps/lzmainfo-tuklib_exit.Po +0 -1
  671. package/deps/xz/src/lzmainfo/.deps/lzmainfo-tuklib_progname.Po +0 -1
  672. package/deps/xz/src/lzmainfo/Makefile +0 -802
  673. package/deps/xz/src/lzmainfo/Makefile.am +0 -39
  674. package/deps/xz/src/lzmainfo/Makefile.in +0 -802
  675. package/deps/xz/src/lzmainfo/lzmainfo.1 +0 -60
  676. package/deps/xz/src/lzmainfo/lzmainfo.c +0 -219
  677. package/deps/xz/src/lzmainfo/lzmainfo_w32res.rc +0 -12
  678. package/deps/xz/src/scripts/Makefile +0 -642
  679. package/deps/xz/src/scripts/Makefile.am +0 -55
  680. package/deps/xz/src/scripts/Makefile.in +0 -642
  681. package/deps/xz/src/scripts/xzdiff +0 -200
  682. package/deps/xz/src/scripts/xzdiff.1 +0 -77
  683. package/deps/xz/src/scripts/xzdiff.in +0 -200
  684. package/deps/xz/src/scripts/xzgrep +0 -215
  685. package/deps/xz/src/scripts/xzgrep.1 +0 -98
  686. package/deps/xz/src/scripts/xzgrep.in +0 -215
  687. package/deps/xz/src/scripts/xzless +0 -58
  688. package/deps/xz/src/scripts/xzless.1 +0 -69
  689. package/deps/xz/src/scripts/xzless.in +0 -58
  690. package/deps/xz/src/scripts/xzmore +0 -78
  691. package/deps/xz/src/scripts/xzmore.1 +0 -55
  692. package/deps/xz/src/scripts/xzmore.in +0 -78
  693. package/deps/xz/src/xz/.deps/xz-args.Po +0 -1
  694. package/deps/xz/src/xz/.deps/xz-coder.Po +0 -1
  695. package/deps/xz/src/xz/.deps/xz-file_io.Po +0 -1
  696. package/deps/xz/src/xz/.deps/xz-hardware.Po +0 -1
  697. package/deps/xz/src/xz/.deps/xz-list.Po +0 -1
  698. package/deps/xz/src/xz/.deps/xz-main.Po +0 -1
  699. package/deps/xz/src/xz/.deps/xz-message.Po +0 -1
  700. package/deps/xz/src/xz/.deps/xz-mytime.Po +0 -1
  701. package/deps/xz/src/xz/.deps/xz-options.Po +0 -1
  702. package/deps/xz/src/xz/.deps/xz-signals.Po +0 -1
  703. package/deps/xz/src/xz/.deps/xz-suffix.Po +0 -1
  704. package/deps/xz/src/xz/.deps/xz-tuklib_exit.Po +0 -1
  705. package/deps/xz/src/xz/.deps/xz-tuklib_mbstr_fw.Po +0 -1
  706. package/deps/xz/src/xz/.deps/xz-tuklib_mbstr_width.Po +0 -1
  707. package/deps/xz/src/xz/.deps/xz-tuklib_open_stdxxx.Po +0 -1
  708. package/deps/xz/src/xz/.deps/xz-tuklib_progname.Po +0 -1
  709. package/deps/xz/src/xz/.deps/xz-util.Po +0 -1
  710. package/deps/xz/src/xz/Makefile +0 -1066
  711. package/deps/xz/src/xz/Makefile.am +0 -107
  712. package/deps/xz/src/xz/Makefile.in +0 -1066
  713. package/deps/xz/src/xz/args.c +0 -684
  714. package/deps/xz/src/xz/args.h +0 -44
  715. package/deps/xz/src/xz/coder.c +0 -919
  716. package/deps/xz/src/xz/coder.h +0 -76
  717. package/deps/xz/src/xz/file_io.c +0 -1184
  718. package/deps/xz/src/xz/file_io.h +0 -150
  719. package/deps/xz/src/xz/hardware.c +0 -150
  720. package/deps/xz/src/xz/hardware.h +0 -37
  721. package/deps/xz/src/xz/list.c +0 -1186
  722. package/deps/xz/src/xz/list.h +0 -18
  723. package/deps/xz/src/xz/main.c +0 -307
  724. package/deps/xz/src/xz/main.h +0 -30
  725. package/deps/xz/src/xz/message.c +0 -1258
  726. package/deps/xz/src/xz/message.h +0 -167
  727. package/deps/xz/src/xz/mytime.c +0 -89
  728. package/deps/xz/src/xz/mytime.h +0 -47
  729. package/deps/xz/src/xz/options.c +0 -363
  730. package/deps/xz/src/xz/options.h +0 -31
  731. package/deps/xz/src/xz/private.h +0 -59
  732. package/deps/xz/src/xz/signals.c +0 -209
  733. package/deps/xz/src/xz/signals.h +0 -43
  734. package/deps/xz/src/xz/suffix.c +0 -399
  735. package/deps/xz/src/xz/suffix.h +0 -28
  736. package/deps/xz/src/xz/util.c +0 -288
  737. package/deps/xz/src/xz/util.h +0 -123
  738. package/deps/xz/src/xz/xz.1 +0 -2786
  739. package/deps/xz/src/xz/xz_w32res.rc +0 -12
  740. package/deps/xz/src/xzdec/.deps/lzmadec-tuklib_exit.Po +0 -1
  741. package/deps/xz/src/xzdec/.deps/lzmadec-tuklib_progname.Po +0 -1
  742. package/deps/xz/src/xzdec/.deps/lzmadec-xzdec.Po +0 -1
  743. package/deps/xz/src/xzdec/.deps/xzdec-tuklib_exit.Po +0 -1
  744. package/deps/xz/src/xzdec/.deps/xzdec-tuklib_progname.Po +0 -1
  745. package/deps/xz/src/xzdec/.deps/xzdec-xzdec.Po +0 -1
  746. package/deps/xz/src/xzdec/Makefile +0 -901
  747. package/deps/xz/src/xzdec/Makefile.am +0 -82
  748. package/deps/xz/src/xzdec/Makefile.in +0 -901
  749. package/deps/xz/src/xzdec/lzmadec_w32res.rc +0 -12
  750. package/deps/xz/src/xzdec/xzdec.1 +0 -146
  751. package/deps/xz/src/xzdec/xzdec.c +0 -323
  752. package/deps/xz/src/xzdec/xzdec_w32res.rc +0 -12
  753. package/deps/xz/stamp-h1 +0 -1
  754. package/deps/xz/tests/.deps/create_compress_files.Po +0 -1
  755. package/deps/xz/tests/.deps/test_bcj_exact_size.Po +0 -1
  756. package/deps/xz/tests/.deps/test_block_header.Po +0 -1
  757. package/deps/xz/tests/.deps/test_check.Po +0 -1
  758. package/deps/xz/tests/.deps/test_filter_flags.Po +0 -1
  759. package/deps/xz/tests/.deps/test_index.Po +0 -1
  760. package/deps/xz/tests/.deps/test_stream_flags.Po +0 -1
  761. package/deps/xz/tests/Makefile +0 -832
  762. package/deps/xz/tests/Makefile.am +0 -57
  763. package/deps/xz/tests/Makefile.in +0 -832
  764. package/deps/xz/tests/bcj_test.c +0 -65
  765. package/deps/xz/tests/compress_prepared_bcj_sparc +0 -0
  766. package/deps/xz/tests/compress_prepared_bcj_x86 +0 -0
  767. package/deps/xz/tests/create_compress_files.c +0 -158
  768. package/deps/xz/tests/files/README +0 -240
  769. package/deps/xz/tests/files/bad-0-backward_size.xz +0 -0
  770. package/deps/xz/tests/files/bad-0-empty-truncated.xz +0 -0
  771. package/deps/xz/tests/files/bad-0-footer_magic.xz +0 -0
  772. package/deps/xz/tests/files/bad-0-header_magic.xz +0 -0
  773. package/deps/xz/tests/files/bad-0-nonempty_index.xz +0 -0
  774. package/deps/xz/tests/files/bad-0cat-alone.xz +0 -0
  775. package/deps/xz/tests/files/bad-0cat-header_magic.xz +0 -0
  776. package/deps/xz/tests/files/bad-0catpad-empty.xz +0 -0
  777. package/deps/xz/tests/files/bad-0pad-empty.xz +0 -0
  778. package/deps/xz/tests/files/bad-1-block_header-1.xz +0 -0
  779. package/deps/xz/tests/files/bad-1-block_header-2.xz +0 -0
  780. package/deps/xz/tests/files/bad-1-block_header-3.xz +0 -0
  781. package/deps/xz/tests/files/bad-1-block_header-4.xz +0 -0
  782. package/deps/xz/tests/files/bad-1-block_header-5.xz +0 -0
  783. package/deps/xz/tests/files/bad-1-block_header-6.xz +0 -0
  784. package/deps/xz/tests/files/bad-1-check-crc32.xz +0 -0
  785. package/deps/xz/tests/files/bad-1-check-crc64.xz +0 -0
  786. package/deps/xz/tests/files/bad-1-check-sha256.xz +0 -0
  787. package/deps/xz/tests/files/bad-1-lzma2-1.xz +0 -0
  788. package/deps/xz/tests/files/bad-1-lzma2-2.xz +0 -0
  789. package/deps/xz/tests/files/bad-1-lzma2-3.xz +0 -0
  790. package/deps/xz/tests/files/bad-1-lzma2-4.xz +0 -0
  791. package/deps/xz/tests/files/bad-1-lzma2-5.xz +0 -0
  792. package/deps/xz/tests/files/bad-1-lzma2-6.xz +0 -0
  793. package/deps/xz/tests/files/bad-1-lzma2-7.xz +0 -0
  794. package/deps/xz/tests/files/bad-1-lzma2-8.xz +0 -0
  795. package/deps/xz/tests/files/bad-1-stream_flags-1.xz +0 -0
  796. package/deps/xz/tests/files/bad-1-stream_flags-2.xz +0 -0
  797. package/deps/xz/tests/files/bad-1-stream_flags-3.xz +0 -0
  798. package/deps/xz/tests/files/bad-1-vli-1.xz +0 -0
  799. package/deps/xz/tests/files/bad-1-vli-2.xz +0 -0
  800. package/deps/xz/tests/files/bad-2-compressed_data_padding.xz +0 -0
  801. package/deps/xz/tests/files/bad-2-index-1.xz +0 -0
  802. package/deps/xz/tests/files/bad-2-index-2.xz +0 -0
  803. package/deps/xz/tests/files/bad-2-index-3.xz +0 -0
  804. package/deps/xz/tests/files/bad-2-index-4.xz +0 -0
  805. package/deps/xz/tests/files/bad-2-index-5.xz +0 -0
  806. package/deps/xz/tests/files/good-0-empty.xz +0 -0
  807. package/deps/xz/tests/files/good-0cat-empty.xz +0 -0
  808. package/deps/xz/tests/files/good-0catpad-empty.xz +0 -0
  809. package/deps/xz/tests/files/good-0pad-empty.xz +0 -0
  810. package/deps/xz/tests/files/good-1-3delta-lzma2.xz +0 -0
  811. package/deps/xz/tests/files/good-1-block_header-1.xz +0 -0
  812. package/deps/xz/tests/files/good-1-block_header-2.xz +0 -0
  813. package/deps/xz/tests/files/good-1-block_header-3.xz +0 -0
  814. package/deps/xz/tests/files/good-1-check-crc32.xz +0 -0
  815. package/deps/xz/tests/files/good-1-check-crc64.xz +0 -0
  816. package/deps/xz/tests/files/good-1-check-none.xz +0 -0
  817. package/deps/xz/tests/files/good-1-check-sha256.xz +0 -0
  818. package/deps/xz/tests/files/good-1-delta-lzma2.tiff.xz +0 -0
  819. package/deps/xz/tests/files/good-1-lzma2-1.xz +0 -0
  820. package/deps/xz/tests/files/good-1-lzma2-2.xz +0 -0
  821. package/deps/xz/tests/files/good-1-lzma2-3.xz +0 -0
  822. package/deps/xz/tests/files/good-1-lzma2-4.xz +0 -0
  823. package/deps/xz/tests/files/good-1-lzma2-5.xz +0 -0
  824. package/deps/xz/tests/files/good-1-sparc-lzma2.xz +0 -0
  825. package/deps/xz/tests/files/good-1-x86-lzma2.xz +0 -0
  826. package/deps/xz/tests/files/good-2-lzma2.xz +0 -0
  827. package/deps/xz/tests/files/unsupported-block_header.xz +0 -0
  828. package/deps/xz/tests/files/unsupported-check.xz +0 -0
  829. package/deps/xz/tests/files/unsupported-filter_flags-1.xz +0 -0
  830. package/deps/xz/tests/files/unsupported-filter_flags-2.xz +0 -0
  831. package/deps/xz/tests/files/unsupported-filter_flags-3.xz +0 -0
  832. package/deps/xz/tests/test_bcj_exact_size.c +0 -113
  833. package/deps/xz/tests/test_block_header.c +0 -240
  834. package/deps/xz/tests/test_check.c +0 -83
  835. package/deps/xz/tests/test_compress.sh +0 -142
  836. package/deps/xz/tests/test_files.sh +0 -57
  837. package/deps/xz/tests/test_filter_flags.c +0 -258
  838. package/deps/xz/tests/test_index.c +0 -659
  839. package/deps/xz/tests/test_scripts.sh +0 -76
  840. package/deps/xz/tests/test_stream_flags.c +0 -180
  841. package/deps/xz/tests/tests.h +0 -124
  842. package/deps/xz/tests/xzgrep_expected_output +0 -39
  843. package/deps/xz/windows/INSTALL-MSVC.txt +0 -47
  844. package/deps/xz/windows/INSTALL-MinGW.txt +0 -138
  845. package/deps/xz/windows/README-Windows.txt +0 -122
  846. package/deps/xz/windows/build.bash +0 -203
  847. package/deps/xz/windows/config.h +0 -142
  848. package/deps/xz/windows/liblzma.vcxproj +0 -354
  849. package/deps/xz/windows/liblzma_dll.vcxproj +0 -383
  850. package/deps/xz/windows/xz_win.sln +0 -48
  851. package/lib/lzma.js +0 -377
  852. package/node_modules/node-pre-gyp/CHANGELOG.md +0 -319
  853. package/node_modules/node-pre-gyp/LICENSE +0 -27
  854. package/node_modules/node-pre-gyp/README.md +0 -570
  855. package/node_modules/node-pre-gyp/appveyor.yml +0 -30
  856. package/node_modules/node-pre-gyp/bin/node-pre-gyp +0 -131
  857. package/node_modules/node-pre-gyp/bin/node-pre-gyp.cmd +0 -2
  858. package/node_modules/node-pre-gyp/lib/build.js +0 -43
  859. package/node_modules/node-pre-gyp/lib/clean.js +0 -23
  860. package/node_modules/node-pre-gyp/lib/configure.js +0 -48
  861. package/node_modules/node-pre-gyp/lib/info.js +0 -40
  862. package/node_modules/node-pre-gyp/lib/install.js +0 -215
  863. package/node_modules/node-pre-gyp/lib/node-pre-gyp.js +0 -192
  864. package/node_modules/node-pre-gyp/lib/package.js +0 -46
  865. package/node_modules/node-pre-gyp/lib/pre-binding.js +0 -25
  866. package/node_modules/node-pre-gyp/lib/publish.js +0 -77
  867. package/node_modules/node-pre-gyp/lib/rebuild.js +0 -13
  868. package/node_modules/node-pre-gyp/lib/reinstall.js +0 -13
  869. package/node_modules/node-pre-gyp/lib/reveal.js +0 -31
  870. package/node_modules/node-pre-gyp/lib/testbinary.js +0 -73
  871. package/node_modules/node-pre-gyp/lib/testpackage.js +0 -49
  872. package/node_modules/node-pre-gyp/lib/unpublish.js +0 -41
  873. package/node_modules/node-pre-gyp/lib/util/abi_crosswalk.json +0 -1222
  874. package/node_modules/node-pre-gyp/lib/util/compile.js +0 -87
  875. package/node_modules/node-pre-gyp/lib/util/handle_gyp_opts.js +0 -94
  876. package/node_modules/node-pre-gyp/lib/util/nw-pre-gyp/index.html +0 -26
  877. package/node_modules/node-pre-gyp/lib/util/nw-pre-gyp/package.json +0 -9
  878. package/node_modules/node-pre-gyp/lib/util/s3_setup.js +0 -27
  879. package/node_modules/node-pre-gyp/lib/util/versioning.js +0 -308
  880. package/node_modules/node-pre-gyp/package.json +0 -136
@@ -1,1246 +0,0 @@
1
- ///////////////////////////////////////////////////////////////////////////////
2
- //
3
- /// \file index.c
4
- /// \brief Handling of .xz Indexes and some other Stream information
5
- //
6
- // Author: Lasse Collin
7
- //
8
- // This file has been put into the public domain.
9
- // You can do whatever you want with this file.
10
- //
11
- ///////////////////////////////////////////////////////////////////////////////
12
-
13
- #include "index.h"
14
- #include "stream_flags_common.h"
15
-
16
-
17
- /// \brief How many Records to allocate at once
18
- ///
19
- /// This should be big enough to avoid making lots of tiny allocations
20
- /// but small enough to avoid too much unused memory at once.
21
- #define INDEX_GROUP_SIZE 512
22
-
23
-
24
- /// \brief How many Records can be allocated at once at maximum
25
- #define PREALLOC_MAX ((SIZE_MAX - sizeof(index_group)) / sizeof(index_record))
26
-
27
-
28
- /// \brief Base structure for index_stream and index_group structures
29
- typedef struct index_tree_node_s index_tree_node;
30
- struct index_tree_node_s {
31
- /// Uncompressed start offset of this Stream (relative to the
32
- /// beginning of the file) or Block (relative to the beginning
33
- /// of the Stream)
34
- lzma_vli uncompressed_base;
35
-
36
- /// Compressed start offset of this Stream or Block
37
- lzma_vli compressed_base;
38
-
39
- index_tree_node *parent;
40
- index_tree_node *left;
41
- index_tree_node *right;
42
- };
43
-
44
-
45
- /// \brief AVL tree to hold index_stream or index_group structures
46
- typedef struct {
47
- /// Root node
48
- index_tree_node *root;
49
-
50
- /// Leftmost node. Since the tree will be filled sequentially,
51
- /// this won't change after the first node has been added to
52
- /// the tree.
53
- index_tree_node *leftmost;
54
-
55
- /// The rightmost node in the tree. Since the tree is filled
56
- /// sequentially, this is always the node where to add the new data.
57
- index_tree_node *rightmost;
58
-
59
- /// Number of nodes in the tree
60
- uint32_t count;
61
-
62
- } index_tree;
63
-
64
-
65
- typedef struct {
66
- lzma_vli uncompressed_sum;
67
- lzma_vli unpadded_sum;
68
- } index_record;
69
-
70
-
71
- typedef struct {
72
- /// Every Record group is part of index_stream.groups tree.
73
- index_tree_node node;
74
-
75
- /// Number of Blocks in this Stream before this group.
76
- lzma_vli number_base;
77
-
78
- /// Number of Records that can be put in records[].
79
- size_t allocated;
80
-
81
- /// Index of the last Record in use.
82
- size_t last;
83
-
84
- /// The sizes in this array are stored as cumulative sums relative
85
- /// to the beginning of the Stream. This makes it possible to
86
- /// use binary search in lzma_index_locate().
87
- ///
88
- /// Note that the cumulative summing is done specially for
89
- /// unpadded_sum: The previous value is rounded up to the next
90
- /// multiple of four before adding the Unpadded Size of the new
91
- /// Block. The total encoded size of the Blocks in the Stream
92
- /// is records[last].unpadded_sum in the last Record group of
93
- /// the Stream.
94
- ///
95
- /// For example, if the Unpadded Sizes are 39, 57, and 81, the
96
- /// stored values are 39, 97 (40 + 57), and 181 (100 + 181).
97
- /// The total encoded size of these Blocks is 184.
98
- ///
99
- /// This is a flexible array, because it makes easy to optimize
100
- /// memory usage in case someone concatenates many Streams that
101
- /// have only one or few Blocks.
102
- index_record records[];
103
-
104
- } index_group;
105
-
106
-
107
- typedef struct {
108
- /// Every index_stream is a node in the tree of Sreams.
109
- index_tree_node node;
110
-
111
- /// Number of this Stream (first one is 1)
112
- uint32_t number;
113
-
114
- /// Total number of Blocks before this Stream
115
- lzma_vli block_number_base;
116
-
117
- /// Record groups of this Stream are stored in a tree.
118
- /// It's a T-tree with AVL-tree balancing. There are
119
- /// INDEX_GROUP_SIZE Records per node by default.
120
- /// This keeps the number of memory allocations reasonable
121
- /// and finding a Record is fast.
122
- index_tree groups;
123
-
124
- /// Number of Records in this Stream
125
- lzma_vli record_count;
126
-
127
- /// Size of the List of Records field in this Stream. This is used
128
- /// together with record_count to calculate the size of the Index
129
- /// field and thus the total size of the Stream.
130
- lzma_vli index_list_size;
131
-
132
- /// Stream Flags of this Stream. This is meaningful only if
133
- /// the Stream Flags have been told us with lzma_index_stream_flags().
134
- /// Initially stream_flags.version is set to UINT32_MAX to indicate
135
- /// that the Stream Flags are unknown.
136
- lzma_stream_flags stream_flags;
137
-
138
- /// Amount of Stream Padding after this Stream. This defaults to
139
- /// zero and can be set with lzma_index_stream_padding().
140
- lzma_vli stream_padding;
141
-
142
- } index_stream;
143
-
144
-
145
- struct lzma_index_s {
146
- /// AVL-tree containing the Stream(s). Often there is just one
147
- /// Stream, but using a tree keeps lookups fast even when there
148
- /// are many concatenated Streams.
149
- index_tree streams;
150
-
151
- /// Uncompressed size of all the Blocks in the Stream(s)
152
- lzma_vli uncompressed_size;
153
-
154
- /// Total size of all the Blocks in the Stream(s)
155
- lzma_vli total_size;
156
-
157
- /// Total number of Records in all Streams in this lzma_index
158
- lzma_vli record_count;
159
-
160
- /// Size of the List of Records field if all the Streams in this
161
- /// lzma_index were packed into a single Stream (makes it simpler to
162
- /// take many .xz files and combine them into a single Stream).
163
- ///
164
- /// This value together with record_count is needed to calculate
165
- /// Backward Size that is stored into Stream Footer.
166
- lzma_vli index_list_size;
167
-
168
- /// How many Records to allocate at once in lzma_index_append().
169
- /// This defaults to INDEX_GROUP_SIZE but can be overriden with
170
- /// lzma_index_prealloc().
171
- size_t prealloc;
172
-
173
- /// Bitmask indicating what integrity check types have been used
174
- /// as set by lzma_index_stream_flags(). The bit of the last Stream
175
- /// is not included here, since it is possible to change it by
176
- /// calling lzma_index_stream_flags() again.
177
- uint32_t checks;
178
- };
179
-
180
-
181
- static void
182
- index_tree_init(index_tree *tree)
183
- {
184
- tree->root = NULL;
185
- tree->leftmost = NULL;
186
- tree->rightmost = NULL;
187
- tree->count = 0;
188
- return;
189
- }
190
-
191
-
192
- /// Helper for index_tree_end()
193
- static void
194
- index_tree_node_end(index_tree_node *node, const lzma_allocator *allocator,
195
- void (*free_func)(void *node, const lzma_allocator *allocator))
196
- {
197
- // The tree won't ever be very huge, so recursion should be fine.
198
- // 20 levels in the tree is likely quite a lot already in practice.
199
- if (node->left != NULL)
200
- index_tree_node_end(node->left, allocator, free_func);
201
-
202
- if (node->right != NULL)
203
- index_tree_node_end(node->right, allocator, free_func);
204
-
205
- if (free_func != NULL)
206
- free_func(node, allocator);
207
-
208
- lzma_free(node, allocator);
209
- return;
210
- }
211
-
212
-
213
- /// Free the meory allocated for a tree. If free_func is not NULL,
214
- /// it is called on each node before freeing the node. This is used
215
- /// to free the Record groups from each index_stream before freeing
216
- /// the index_stream itself.
217
- static void
218
- index_tree_end(index_tree *tree, const lzma_allocator *allocator,
219
- void (*free_func)(void *node, const lzma_allocator *allocator))
220
- {
221
- if (tree->root != NULL)
222
- index_tree_node_end(tree->root, allocator, free_func);
223
-
224
- return;
225
- }
226
-
227
-
228
- /// Add a new node to the tree. node->uncompressed_base and
229
- /// node->compressed_base must have been set by the caller already.
230
- static void
231
- index_tree_append(index_tree *tree, index_tree_node *node)
232
- {
233
- node->parent = tree->rightmost;
234
- node->left = NULL;
235
- node->right = NULL;
236
-
237
- ++tree->count;
238
-
239
- // Handle the special case of adding the first node.
240
- if (tree->root == NULL) {
241
- tree->root = node;
242
- tree->leftmost = node;
243
- tree->rightmost = node;
244
- return;
245
- }
246
-
247
- // The tree is always filled sequentially.
248
- assert(tree->rightmost->uncompressed_base <= node->uncompressed_base);
249
- assert(tree->rightmost->compressed_base < node->compressed_base);
250
-
251
- // Add the new node after the rightmost node. It's the correct
252
- // place due to the reason above.
253
- tree->rightmost->right = node;
254
- tree->rightmost = node;
255
-
256
- // Balance the AVL-tree if needed. We don't need to keep the balance
257
- // factors in nodes, because we always fill the tree sequentially,
258
- // and thus know the state of the tree just by looking at the node
259
- // count. From the node count we can calculate how many steps to go
260
- // up in the tree to find the rotation root.
261
- uint32_t up = tree->count ^ (UINT32_C(1) << bsr32(tree->count));
262
- if (up != 0) {
263
- // Locate the root node for the rotation.
264
- up = ctz32(tree->count) + 2;
265
- do {
266
- node = node->parent;
267
- } while (--up > 0);
268
-
269
- // Rotate left using node as the rotation root.
270
- index_tree_node *pivot = node->right;
271
-
272
- if (node->parent == NULL) {
273
- tree->root = pivot;
274
- } else {
275
- assert(node->parent->right == node);
276
- node->parent->right = pivot;
277
- }
278
-
279
- pivot->parent = node->parent;
280
-
281
- node->right = pivot->left;
282
- if (node->right != NULL)
283
- node->right->parent = node;
284
-
285
- pivot->left = node;
286
- node->parent = pivot;
287
- }
288
-
289
- return;
290
- }
291
-
292
-
293
- /// Get the next node in the tree. Return NULL if there are no more nodes.
294
- static void *
295
- index_tree_next(const index_tree_node *node)
296
- {
297
- if (node->right != NULL) {
298
- node = node->right;
299
- while (node->left != NULL)
300
- node = node->left;
301
-
302
- return (void *)(node);
303
- }
304
-
305
- while (node->parent != NULL && node->parent->right == node)
306
- node = node->parent;
307
-
308
- return (void *)(node->parent);
309
- }
310
-
311
-
312
- /// Locate a node that contains the given uncompressed offset. It is
313
- /// caller's job to check that target is not bigger than the uncompressed
314
- /// size of the tree (the last node would be returned in that case still).
315
- static void *
316
- index_tree_locate(const index_tree *tree, lzma_vli target)
317
- {
318
- const index_tree_node *result = NULL;
319
- const index_tree_node *node = tree->root;
320
-
321
- assert(tree->leftmost == NULL
322
- || tree->leftmost->uncompressed_base == 0);
323
-
324
- // Consecutive nodes may have the same uncompressed_base.
325
- // We must pick the rightmost one.
326
- while (node != NULL) {
327
- if (node->uncompressed_base > target) {
328
- node = node->left;
329
- } else {
330
- result = node;
331
- node = node->right;
332
- }
333
- }
334
-
335
- return (void *)(result);
336
- }
337
-
338
-
339
- /// Allocate and initialize a new Stream using the given base offsets.
340
- static index_stream *
341
- index_stream_init(lzma_vli compressed_base, lzma_vli uncompressed_base,
342
- uint32_t stream_number, lzma_vli block_number_base,
343
- const lzma_allocator *allocator)
344
- {
345
- index_stream *s = lzma_alloc(sizeof(index_stream), allocator);
346
- if (s == NULL)
347
- return NULL;
348
-
349
- s->node.uncompressed_base = uncompressed_base;
350
- s->node.compressed_base = compressed_base;
351
- s->node.parent = NULL;
352
- s->node.left = NULL;
353
- s->node.right = NULL;
354
-
355
- s->number = stream_number;
356
- s->block_number_base = block_number_base;
357
-
358
- index_tree_init(&s->groups);
359
-
360
- s->record_count = 0;
361
- s->index_list_size = 0;
362
- s->stream_flags.version = UINT32_MAX;
363
- s->stream_padding = 0;
364
-
365
- return s;
366
- }
367
-
368
-
369
- /// Free the memory allocated for a Stream and its Record groups.
370
- static void
371
- index_stream_end(void *node, const lzma_allocator *allocator)
372
- {
373
- index_stream *s = node;
374
- index_tree_end(&s->groups, allocator, NULL);
375
- return;
376
- }
377
-
378
-
379
- static lzma_index *
380
- index_init_plain(const lzma_allocator *allocator)
381
- {
382
- lzma_index *i = lzma_alloc(sizeof(lzma_index), allocator);
383
- if (i != NULL) {
384
- index_tree_init(&i->streams);
385
- i->uncompressed_size = 0;
386
- i->total_size = 0;
387
- i->record_count = 0;
388
- i->index_list_size = 0;
389
- i->prealloc = INDEX_GROUP_SIZE;
390
- i->checks = 0;
391
- }
392
-
393
- return i;
394
- }
395
-
396
-
397
- extern LZMA_API(lzma_index *)
398
- lzma_index_init(const lzma_allocator *allocator)
399
- {
400
- lzma_index *i = index_init_plain(allocator);
401
- if (i == NULL)
402
- return NULL;
403
-
404
- index_stream *s = index_stream_init(0, 0, 1, 0, allocator);
405
- if (s == NULL) {
406
- lzma_free(i, allocator);
407
- return NULL;
408
- }
409
-
410
- index_tree_append(&i->streams, &s->node);
411
-
412
- return i;
413
- }
414
-
415
-
416
- extern LZMA_API(void)
417
- lzma_index_end(lzma_index *i, const lzma_allocator *allocator)
418
- {
419
- // NOTE: If you modify this function, check also the bottom
420
- // of lzma_index_cat().
421
- if (i != NULL) {
422
- index_tree_end(&i->streams, allocator, &index_stream_end);
423
- lzma_free(i, allocator);
424
- }
425
-
426
- return;
427
- }
428
-
429
-
430
- extern void
431
- lzma_index_prealloc(lzma_index *i, lzma_vli records)
432
- {
433
- if (records > PREALLOC_MAX)
434
- records = PREALLOC_MAX;
435
-
436
- i->prealloc = (size_t)(records);
437
- return;
438
- }
439
-
440
-
441
- extern LZMA_API(uint64_t)
442
- lzma_index_memusage(lzma_vli streams, lzma_vli blocks)
443
- {
444
- // This calculates an upper bound that is only a little bit
445
- // bigger than the exact maximum memory usage with the given
446
- // parameters.
447
-
448
- // Typical malloc() overhead is 2 * sizeof(void *) but we take
449
- // a little bit extra just in case. Using LZMA_MEMUSAGE_BASE
450
- // instead would give too inaccurate estimate.
451
- const size_t alloc_overhead = 4 * sizeof(void *);
452
-
453
- // Amount of memory needed for each Stream base structures.
454
- // We assume that every Stream has at least one Block and
455
- // thus at least one group.
456
- const size_t stream_base = sizeof(index_stream)
457
- + sizeof(index_group) + 2 * alloc_overhead;
458
-
459
- // Amount of memory needed per group.
460
- const size_t group_base = sizeof(index_group)
461
- + INDEX_GROUP_SIZE * sizeof(index_record)
462
- + alloc_overhead;
463
-
464
- // Number of groups. There may actually be more, but that overhead
465
- // has been taken into account in stream_base already.
466
- const lzma_vli groups
467
- = (blocks + INDEX_GROUP_SIZE - 1) / INDEX_GROUP_SIZE;
468
-
469
- // Memory used by index_stream and index_group structures.
470
- const uint64_t streams_mem = streams * stream_base;
471
- const uint64_t groups_mem = groups * group_base;
472
-
473
- // Memory used by the base structure.
474
- const uint64_t index_base = sizeof(lzma_index) + alloc_overhead;
475
-
476
- // Validate the arguments and catch integer overflows.
477
- // Maximum number of Streams is "only" UINT32_MAX, because
478
- // that limit is used by the tree containing the Streams.
479
- const uint64_t limit = UINT64_MAX - index_base;
480
- if (streams == 0 || streams > UINT32_MAX || blocks > LZMA_VLI_MAX
481
- || streams > limit / stream_base
482
- || groups > limit / group_base
483
- || limit - streams_mem < groups_mem)
484
- return UINT64_MAX;
485
-
486
- return index_base + streams_mem + groups_mem;
487
- }
488
-
489
-
490
- extern LZMA_API(uint64_t)
491
- lzma_index_memused(const lzma_index *i)
492
- {
493
- return lzma_index_memusage(i->streams.count, i->record_count);
494
- }
495
-
496
-
497
- extern LZMA_API(lzma_vli)
498
- lzma_index_block_count(const lzma_index *i)
499
- {
500
- return i->record_count;
501
- }
502
-
503
-
504
- extern LZMA_API(lzma_vli)
505
- lzma_index_stream_count(const lzma_index *i)
506
- {
507
- return i->streams.count;
508
- }
509
-
510
-
511
- extern LZMA_API(lzma_vli)
512
- lzma_index_size(const lzma_index *i)
513
- {
514
- return index_size(i->record_count, i->index_list_size);
515
- }
516
-
517
-
518
- extern LZMA_API(lzma_vli)
519
- lzma_index_total_size(const lzma_index *i)
520
- {
521
- return i->total_size;
522
- }
523
-
524
-
525
- extern LZMA_API(lzma_vli)
526
- lzma_index_stream_size(const lzma_index *i)
527
- {
528
- // Stream Header + Blocks + Index + Stream Footer
529
- return LZMA_STREAM_HEADER_SIZE + i->total_size
530
- + index_size(i->record_count, i->index_list_size)
531
- + LZMA_STREAM_HEADER_SIZE;
532
- }
533
-
534
-
535
- static lzma_vli
536
- index_file_size(lzma_vli compressed_base, lzma_vli unpadded_sum,
537
- lzma_vli record_count, lzma_vli index_list_size,
538
- lzma_vli stream_padding)
539
- {
540
- // Earlier Streams and Stream Paddings + Stream Header
541
- // + Blocks + Index + Stream Footer + Stream Padding
542
- //
543
- // This might go over LZMA_VLI_MAX due to too big unpadded_sum
544
- // when this function is used in lzma_index_append().
545
- lzma_vli file_size = compressed_base + 2 * LZMA_STREAM_HEADER_SIZE
546
- + stream_padding + vli_ceil4(unpadded_sum);
547
- if (file_size > LZMA_VLI_MAX)
548
- return LZMA_VLI_UNKNOWN;
549
-
550
- // The same applies here.
551
- file_size += index_size(record_count, index_list_size);
552
- if (file_size > LZMA_VLI_MAX)
553
- return LZMA_VLI_UNKNOWN;
554
-
555
- return file_size;
556
- }
557
-
558
-
559
- extern LZMA_API(lzma_vli)
560
- lzma_index_file_size(const lzma_index *i)
561
- {
562
- const index_stream *s = (const index_stream *)(i->streams.rightmost);
563
- const index_group *g = (const index_group *)(s->groups.rightmost);
564
- return index_file_size(s->node.compressed_base,
565
- g == NULL ? 0 : g->records[g->last].unpadded_sum,
566
- s->record_count, s->index_list_size,
567
- s->stream_padding);
568
- }
569
-
570
-
571
- extern LZMA_API(lzma_vli)
572
- lzma_index_uncompressed_size(const lzma_index *i)
573
- {
574
- return i->uncompressed_size;
575
- }
576
-
577
-
578
- extern LZMA_API(uint32_t)
579
- lzma_index_checks(const lzma_index *i)
580
- {
581
- uint32_t checks = i->checks;
582
-
583
- // Get the type of the Check of the last Stream too.
584
- const index_stream *s = (const index_stream *)(i->streams.rightmost);
585
- if (s->stream_flags.version != UINT32_MAX)
586
- checks |= UINT32_C(1) << s->stream_flags.check;
587
-
588
- return checks;
589
- }
590
-
591
-
592
- extern uint32_t
593
- lzma_index_padding_size(const lzma_index *i)
594
- {
595
- return (LZMA_VLI_C(4) - index_size_unpadded(
596
- i->record_count, i->index_list_size)) & 3;
597
- }
598
-
599
-
600
- extern LZMA_API(lzma_ret)
601
- lzma_index_stream_flags(lzma_index *i, const lzma_stream_flags *stream_flags)
602
- {
603
- if (i == NULL || stream_flags == NULL)
604
- return LZMA_PROG_ERROR;
605
-
606
- // Validate the Stream Flags.
607
- return_if_error(lzma_stream_flags_compare(
608
- stream_flags, stream_flags));
609
-
610
- index_stream *s = (index_stream *)(i->streams.rightmost);
611
- s->stream_flags = *stream_flags;
612
-
613
- return LZMA_OK;
614
- }
615
-
616
-
617
- extern LZMA_API(lzma_ret)
618
- lzma_index_stream_padding(lzma_index *i, lzma_vli stream_padding)
619
- {
620
- if (i == NULL || stream_padding > LZMA_VLI_MAX
621
- || (stream_padding & 3) != 0)
622
- return LZMA_PROG_ERROR;
623
-
624
- index_stream *s = (index_stream *)(i->streams.rightmost);
625
-
626
- // Check that the new value won't make the file grow too big.
627
- const lzma_vli old_stream_padding = s->stream_padding;
628
- s->stream_padding = 0;
629
- if (lzma_index_file_size(i) + stream_padding > LZMA_VLI_MAX) {
630
- s->stream_padding = old_stream_padding;
631
- return LZMA_DATA_ERROR;
632
- }
633
-
634
- s->stream_padding = stream_padding;
635
- return LZMA_OK;
636
- }
637
-
638
-
639
- extern LZMA_API(lzma_ret)
640
- lzma_index_append(lzma_index *i, const lzma_allocator *allocator,
641
- lzma_vli unpadded_size, lzma_vli uncompressed_size)
642
- {
643
- // Validate.
644
- if (i == NULL || unpadded_size < UNPADDED_SIZE_MIN
645
- || unpadded_size > UNPADDED_SIZE_MAX
646
- || uncompressed_size > LZMA_VLI_MAX)
647
- return LZMA_PROG_ERROR;
648
-
649
- index_stream *s = (index_stream *)(i->streams.rightmost);
650
- index_group *g = (index_group *)(s->groups.rightmost);
651
-
652
- const lzma_vli compressed_base = g == NULL ? 0
653
- : vli_ceil4(g->records[g->last].unpadded_sum);
654
- const lzma_vli uncompressed_base = g == NULL ? 0
655
- : g->records[g->last].uncompressed_sum;
656
- const uint32_t index_list_size_add = lzma_vli_size(unpadded_size)
657
- + lzma_vli_size(uncompressed_size);
658
-
659
- // Check that the file size will stay within limits.
660
- if (index_file_size(s->node.compressed_base,
661
- compressed_base + unpadded_size, s->record_count + 1,
662
- s->index_list_size + index_list_size_add,
663
- s->stream_padding) == LZMA_VLI_UNKNOWN)
664
- return LZMA_DATA_ERROR;
665
-
666
- // The size of the Index field must not exceed the maximum value
667
- // that can be stored in the Backward Size field.
668
- if (index_size(i->record_count + 1,
669
- i->index_list_size + index_list_size_add)
670
- > LZMA_BACKWARD_SIZE_MAX)
671
- return LZMA_DATA_ERROR;
672
-
673
- if (g != NULL && g->last + 1 < g->allocated) {
674
- // There is space in the last group at least for one Record.
675
- ++g->last;
676
- } else {
677
- // We need to allocate a new group.
678
- g = lzma_alloc(sizeof(index_group)
679
- + i->prealloc * sizeof(index_record),
680
- allocator);
681
- if (g == NULL)
682
- return LZMA_MEM_ERROR;
683
-
684
- g->last = 0;
685
- g->allocated = i->prealloc;
686
-
687
- // Reset prealloc so that if the application happens to
688
- // add new Records, the allocation size will be sane.
689
- i->prealloc = INDEX_GROUP_SIZE;
690
-
691
- // Set the start offsets of this group.
692
- g->node.uncompressed_base = uncompressed_base;
693
- g->node.compressed_base = compressed_base;
694
- g->number_base = s->record_count + 1;
695
-
696
- // Add the new group to the Stream.
697
- index_tree_append(&s->groups, &g->node);
698
- }
699
-
700
- // Add the new Record to the group.
701
- g->records[g->last].uncompressed_sum
702
- = uncompressed_base + uncompressed_size;
703
- g->records[g->last].unpadded_sum
704
- = compressed_base + unpadded_size;
705
-
706
- // Update the totals.
707
- ++s->record_count;
708
- s->index_list_size += index_list_size_add;
709
-
710
- i->total_size += vli_ceil4(unpadded_size);
711
- i->uncompressed_size += uncompressed_size;
712
- ++i->record_count;
713
- i->index_list_size += index_list_size_add;
714
-
715
- return LZMA_OK;
716
- }
717
-
718
-
719
- /// Structure to pass info to index_cat_helper()
720
- typedef struct {
721
- /// Uncompressed size of the destination
722
- lzma_vli uncompressed_size;
723
-
724
- /// Compressed file size of the destination
725
- lzma_vli file_size;
726
-
727
- /// Same as above but for Block numbers
728
- lzma_vli block_number_add;
729
-
730
- /// Number of Streams that were in the destination index before we
731
- /// started appending new Streams from the source index. This is
732
- /// used to fix the Stream numbering.
733
- uint32_t stream_number_add;
734
-
735
- /// Destination index' Stream tree
736
- index_tree *streams;
737
-
738
- } index_cat_info;
739
-
740
-
741
- /// Add the Stream nodes from the source index to dest using recursion.
742
- /// Simplest iterative traversal of the source tree wouldn't work, because
743
- /// we update the pointers in nodes when moving them to the destination tree.
744
- static void
745
- index_cat_helper(const index_cat_info *info, index_stream *this)
746
- {
747
- index_stream *left = (index_stream *)(this->node.left);
748
- index_stream *right = (index_stream *)(this->node.right);
749
-
750
- if (left != NULL)
751
- index_cat_helper(info, left);
752
-
753
- this->node.uncompressed_base += info->uncompressed_size;
754
- this->node.compressed_base += info->file_size;
755
- this->number += info->stream_number_add;
756
- this->block_number_base += info->block_number_add;
757
- index_tree_append(info->streams, &this->node);
758
-
759
- if (right != NULL)
760
- index_cat_helper(info, right);
761
-
762
- return;
763
- }
764
-
765
-
766
- extern LZMA_API(lzma_ret)
767
- lzma_index_cat(lzma_index *restrict dest, lzma_index *restrict src,
768
- const lzma_allocator *allocator)
769
- {
770
- const lzma_vli dest_file_size = lzma_index_file_size(dest);
771
-
772
- // Check that we don't exceed the file size limits.
773
- if (dest_file_size + lzma_index_file_size(src) > LZMA_VLI_MAX
774
- || dest->uncompressed_size + src->uncompressed_size
775
- > LZMA_VLI_MAX)
776
- return LZMA_DATA_ERROR;
777
-
778
- // Check that the encoded size of the combined lzma_indexes stays
779
- // within limits. In theory, this should be done only if we know
780
- // that the user plans to actually combine the Streams and thus
781
- // construct a single Index (probably rare). However, exceeding
782
- // this limit is quite theoretical, so we do this check always
783
- // to simplify things elsewhere.
784
- {
785
- const lzma_vli dest_size = index_size_unpadded(
786
- dest->record_count, dest->index_list_size);
787
- const lzma_vli src_size = index_size_unpadded(
788
- src->record_count, src->index_list_size);
789
- if (vli_ceil4(dest_size + src_size) > LZMA_BACKWARD_SIZE_MAX)
790
- return LZMA_DATA_ERROR;
791
- }
792
-
793
- // Optimize the last group to minimize memory usage. Allocation has
794
- // to be done before modifying dest or src.
795
- {
796
- index_stream *s = (index_stream *)(dest->streams.rightmost);
797
- index_group *g = (index_group *)(s->groups.rightmost);
798
- if (g != NULL && g->last + 1 < g->allocated) {
799
- assert(g->node.left == NULL);
800
- assert(g->node.right == NULL);
801
-
802
- index_group *newg = lzma_alloc(sizeof(index_group)
803
- + (g->last + 1)
804
- * sizeof(index_record),
805
- allocator);
806
- if (newg == NULL)
807
- return LZMA_MEM_ERROR;
808
-
809
- newg->node = g->node;
810
- newg->allocated = g->last + 1;
811
- newg->last = g->last;
812
- newg->number_base = g->number_base;
813
-
814
- memcpy(newg->records, g->records, newg->allocated
815
- * sizeof(index_record));
816
-
817
- if (g->node.parent != NULL) {
818
- assert(g->node.parent->right == &g->node);
819
- g->node.parent->right = &newg->node;
820
- }
821
-
822
- if (s->groups.leftmost == &g->node) {
823
- assert(s->groups.root == &g->node);
824
- s->groups.leftmost = &newg->node;
825
- s->groups.root = &newg->node;
826
- }
827
-
828
- if (s->groups.rightmost == &g->node)
829
- s->groups.rightmost = &newg->node;
830
-
831
- lzma_free(g, allocator);
832
- }
833
- }
834
-
835
- // Add all the Streams from src to dest. Update the base offsets
836
- // of each Stream from src.
837
- const index_cat_info info = {
838
- .uncompressed_size = dest->uncompressed_size,
839
- .file_size = dest_file_size,
840
- .stream_number_add = dest->streams.count,
841
- .block_number_add = dest->record_count,
842
- .streams = &dest->streams,
843
- };
844
- index_cat_helper(&info, (index_stream *)(src->streams.root));
845
-
846
- // Update info about all the combined Streams.
847
- dest->uncompressed_size += src->uncompressed_size;
848
- dest->total_size += src->total_size;
849
- dest->record_count += src->record_count;
850
- dest->index_list_size += src->index_list_size;
851
- dest->checks = lzma_index_checks(dest) | src->checks;
852
-
853
- // There's nothing else left in src than the base structure.
854
- lzma_free(src, allocator);
855
-
856
- return LZMA_OK;
857
- }
858
-
859
-
860
- /// Duplicate an index_stream.
861
- static index_stream *
862
- index_dup_stream(const index_stream *src, const lzma_allocator *allocator)
863
- {
864
- // Catch a somewhat theoretical integer overflow.
865
- if (src->record_count > PREALLOC_MAX)
866
- return NULL;
867
-
868
- // Allocate and initialize a new Stream.
869
- index_stream *dest = index_stream_init(src->node.compressed_base,
870
- src->node.uncompressed_base, src->number,
871
- src->block_number_base, allocator);
872
-
873
- // Return immediately if allocation failed or if there are
874
- // no groups to duplicate.
875
- if (dest == NULL || src->groups.leftmost == NULL)
876
- return dest;
877
-
878
- // Copy the overall information.
879
- dest->record_count = src->record_count;
880
- dest->index_list_size = src->index_list_size;
881
- dest->stream_flags = src->stream_flags;
882
- dest->stream_padding = src->stream_padding;
883
-
884
- // Allocate memory for the Records. We put all the Records into
885
- // a single group. It's simplest and also tends to make
886
- // lzma_index_locate() a little bit faster with very big Indexes.
887
- index_group *destg = lzma_alloc(sizeof(index_group)
888
- + src->record_count * sizeof(index_record),
889
- allocator);
890
- if (destg == NULL) {
891
- index_stream_end(dest, allocator);
892
- return NULL;
893
- }
894
-
895
- // Initialize destg.
896
- destg->node.uncompressed_base = 0;
897
- destg->node.compressed_base = 0;
898
- destg->number_base = 1;
899
- destg->allocated = src->record_count;
900
- destg->last = src->record_count - 1;
901
-
902
- // Go through all the groups in src and copy the Records into destg.
903
- const index_group *srcg = (const index_group *)(src->groups.leftmost);
904
- size_t i = 0;
905
- do {
906
- memcpy(destg->records + i, srcg->records,
907
- (srcg->last + 1) * sizeof(index_record));
908
- i += srcg->last + 1;
909
- srcg = index_tree_next(&srcg->node);
910
- } while (srcg != NULL);
911
-
912
- assert(i == destg->allocated);
913
-
914
- // Add the group to the new Stream.
915
- index_tree_append(&dest->groups, &destg->node);
916
-
917
- return dest;
918
- }
919
-
920
-
921
- extern LZMA_API(lzma_index *)
922
- lzma_index_dup(const lzma_index *src, const lzma_allocator *allocator)
923
- {
924
- // Allocate the base structure (no initial Stream).
925
- lzma_index *dest = index_init_plain(allocator);
926
- if (dest == NULL)
927
- return NULL;
928
-
929
- // Copy the totals.
930
- dest->uncompressed_size = src->uncompressed_size;
931
- dest->total_size = src->total_size;
932
- dest->record_count = src->record_count;
933
- dest->index_list_size = src->index_list_size;
934
-
935
- // Copy the Streams and the groups in them.
936
- const index_stream *srcstream
937
- = (const index_stream *)(src->streams.leftmost);
938
- do {
939
- index_stream *deststream = index_dup_stream(
940
- srcstream, allocator);
941
- if (deststream == NULL) {
942
- lzma_index_end(dest, allocator);
943
- return NULL;
944
- }
945
-
946
- index_tree_append(&dest->streams, &deststream->node);
947
-
948
- srcstream = index_tree_next(&srcstream->node);
949
- } while (srcstream != NULL);
950
-
951
- return dest;
952
- }
953
-
954
-
955
- /// Indexing for lzma_index_iter.internal[]
956
- enum {
957
- ITER_INDEX,
958
- ITER_STREAM,
959
- ITER_GROUP,
960
- ITER_RECORD,
961
- ITER_METHOD,
962
- };
963
-
964
-
965
- /// Values for lzma_index_iter.internal[ITER_METHOD].s
966
- enum {
967
- ITER_METHOD_NORMAL,
968
- ITER_METHOD_NEXT,
969
- ITER_METHOD_LEFTMOST,
970
- };
971
-
972
-
973
- static void
974
- iter_set_info(lzma_index_iter *iter)
975
- {
976
- const lzma_index *i = iter->internal[ITER_INDEX].p;
977
- const index_stream *stream = iter->internal[ITER_STREAM].p;
978
- const index_group *group = iter->internal[ITER_GROUP].p;
979
- const size_t record = iter->internal[ITER_RECORD].s;
980
-
981
- // lzma_index_iter.internal must not contain a pointer to the last
982
- // group in the index, because that may be reallocated by
983
- // lzma_index_cat().
984
- if (group == NULL) {
985
- // There are no groups.
986
- assert(stream->groups.root == NULL);
987
- iter->internal[ITER_METHOD].s = ITER_METHOD_LEFTMOST;
988
-
989
- } else if (i->streams.rightmost != &stream->node
990
- || stream->groups.rightmost != &group->node) {
991
- // The group is not not the last group in the index.
992
- iter->internal[ITER_METHOD].s = ITER_METHOD_NORMAL;
993
-
994
- } else if (stream->groups.leftmost != &group->node) {
995
- // The group isn't the only group in the Stream, thus we
996
- // know that it must have a parent group i.e. it's not
997
- // the root node.
998
- assert(stream->groups.root != &group->node);
999
- assert(group->node.parent->right == &group->node);
1000
- iter->internal[ITER_METHOD].s = ITER_METHOD_NEXT;
1001
- iter->internal[ITER_GROUP].p = group->node.parent;
1002
-
1003
- } else {
1004
- // The Stream has only one group.
1005
- assert(stream->groups.root == &group->node);
1006
- assert(group->node.parent == NULL);
1007
- iter->internal[ITER_METHOD].s = ITER_METHOD_LEFTMOST;
1008
- iter->internal[ITER_GROUP].p = NULL;
1009
- }
1010
-
1011
- // NOTE: lzma_index_iter.stream.number is lzma_vli but we use uint32_t
1012
- // internally.
1013
- iter->stream.number = stream->number;
1014
- iter->stream.block_count = stream->record_count;
1015
- iter->stream.compressed_offset = stream->node.compressed_base;
1016
- iter->stream.uncompressed_offset = stream->node.uncompressed_base;
1017
-
1018
- // iter->stream.flags will be NULL if the Stream Flags haven't been
1019
- // set with lzma_index_stream_flags().
1020
- iter->stream.flags = stream->stream_flags.version == UINT32_MAX
1021
- ? NULL : &stream->stream_flags;
1022
- iter->stream.padding = stream->stream_padding;
1023
-
1024
- if (stream->groups.rightmost == NULL) {
1025
- // Stream has no Blocks.
1026
- iter->stream.compressed_size = index_size(0, 0)
1027
- + 2 * LZMA_STREAM_HEADER_SIZE;
1028
- iter->stream.uncompressed_size = 0;
1029
- } else {
1030
- const index_group *g = (const index_group *)(
1031
- stream->groups.rightmost);
1032
-
1033
- // Stream Header + Stream Footer + Index + Blocks
1034
- iter->stream.compressed_size = 2 * LZMA_STREAM_HEADER_SIZE
1035
- + index_size(stream->record_count,
1036
- stream->index_list_size)
1037
- + vli_ceil4(g->records[g->last].unpadded_sum);
1038
- iter->stream.uncompressed_size
1039
- = g->records[g->last].uncompressed_sum;
1040
- }
1041
-
1042
- if (group != NULL) {
1043
- iter->block.number_in_stream = group->number_base + record;
1044
- iter->block.number_in_file = iter->block.number_in_stream
1045
- + stream->block_number_base;
1046
-
1047
- iter->block.compressed_stream_offset
1048
- = record == 0 ? group->node.compressed_base
1049
- : vli_ceil4(group->records[
1050
- record - 1].unpadded_sum);
1051
- iter->block.uncompressed_stream_offset
1052
- = record == 0 ? group->node.uncompressed_base
1053
- : group->records[record - 1].uncompressed_sum;
1054
-
1055
- iter->block.uncompressed_size
1056
- = group->records[record].uncompressed_sum
1057
- - iter->block.uncompressed_stream_offset;
1058
- iter->block.unpadded_size
1059
- = group->records[record].unpadded_sum
1060
- - iter->block.compressed_stream_offset;
1061
- iter->block.total_size = vli_ceil4(iter->block.unpadded_size);
1062
-
1063
- iter->block.compressed_stream_offset
1064
- += LZMA_STREAM_HEADER_SIZE;
1065
-
1066
- iter->block.compressed_file_offset
1067
- = iter->block.compressed_stream_offset
1068
- + iter->stream.compressed_offset;
1069
- iter->block.uncompressed_file_offset
1070
- = iter->block.uncompressed_stream_offset
1071
- + iter->stream.uncompressed_offset;
1072
- }
1073
-
1074
- return;
1075
- }
1076
-
1077
-
1078
- extern LZMA_API(void)
1079
- lzma_index_iter_init(lzma_index_iter *iter, const lzma_index *i)
1080
- {
1081
- iter->internal[ITER_INDEX].p = i;
1082
- lzma_index_iter_rewind(iter);
1083
- return;
1084
- }
1085
-
1086
-
1087
- extern LZMA_API(void)
1088
- lzma_index_iter_rewind(lzma_index_iter *iter)
1089
- {
1090
- iter->internal[ITER_STREAM].p = NULL;
1091
- iter->internal[ITER_GROUP].p = NULL;
1092
- iter->internal[ITER_RECORD].s = 0;
1093
- iter->internal[ITER_METHOD].s = ITER_METHOD_NORMAL;
1094
- return;
1095
- }
1096
-
1097
-
1098
- extern LZMA_API(lzma_bool)
1099
- lzma_index_iter_next(lzma_index_iter *iter, lzma_index_iter_mode mode)
1100
- {
1101
- // Catch unsupported mode values.
1102
- if ((unsigned int)(mode) > LZMA_INDEX_ITER_NONEMPTY_BLOCK)
1103
- return true;
1104
-
1105
- const lzma_index *i = iter->internal[ITER_INDEX].p;
1106
- const index_stream *stream = iter->internal[ITER_STREAM].p;
1107
- const index_group *group = NULL;
1108
- size_t record = iter->internal[ITER_RECORD].s;
1109
-
1110
- // If we are being asked for the next Stream, leave group to NULL
1111
- // so that the rest of the this function thinks that this Stream
1112
- // has no groups and will thus go to the next Stream.
1113
- if (mode != LZMA_INDEX_ITER_STREAM) {
1114
- // Get the pointer to the current group. See iter_set_inf()
1115
- // for explanation.
1116
- switch (iter->internal[ITER_METHOD].s) {
1117
- case ITER_METHOD_NORMAL:
1118
- group = iter->internal[ITER_GROUP].p;
1119
- break;
1120
-
1121
- case ITER_METHOD_NEXT:
1122
- group = index_tree_next(iter->internal[ITER_GROUP].p);
1123
- break;
1124
-
1125
- case ITER_METHOD_LEFTMOST:
1126
- group = (const index_group *)(
1127
- stream->groups.leftmost);
1128
- break;
1129
- }
1130
- }
1131
-
1132
- again:
1133
- if (stream == NULL) {
1134
- // We at the beginning of the lzma_index.
1135
- // Locate the first Stream.
1136
- stream = (const index_stream *)(i->streams.leftmost);
1137
- if (mode >= LZMA_INDEX_ITER_BLOCK) {
1138
- // Since we are being asked to return information
1139
- // about the first a Block, skip Streams that have
1140
- // no Blocks.
1141
- while (stream->groups.leftmost == NULL) {
1142
- stream = index_tree_next(&stream->node);
1143
- if (stream == NULL)
1144
- return true;
1145
- }
1146
- }
1147
-
1148
- // Start from the first Record in the Stream.
1149
- group = (const index_group *)(stream->groups.leftmost);
1150
- record = 0;
1151
-
1152
- } else if (group != NULL && record < group->last) {
1153
- // The next Record is in the same group.
1154
- ++record;
1155
-
1156
- } else {
1157
- // This group has no more Records or this Stream has
1158
- // no Blocks at all.
1159
- record = 0;
1160
-
1161
- // If group is not NULL, this Stream has at least one Block
1162
- // and thus at least one group. Find the next group.
1163
- if (group != NULL)
1164
- group = index_tree_next(&group->node);
1165
-
1166
- if (group == NULL) {
1167
- // This Stream has no more Records. Find the next
1168
- // Stream. If we are being asked to return information
1169
- // about a Block, we skip empty Streams.
1170
- do {
1171
- stream = index_tree_next(&stream->node);
1172
- if (stream == NULL)
1173
- return true;
1174
- } while (mode >= LZMA_INDEX_ITER_BLOCK
1175
- && stream->groups.leftmost == NULL);
1176
-
1177
- group = (const index_group *)(
1178
- stream->groups.leftmost);
1179
- }
1180
- }
1181
-
1182
- if (mode == LZMA_INDEX_ITER_NONEMPTY_BLOCK) {
1183
- // We need to look for the next Block again if this Block
1184
- // is empty.
1185
- if (record == 0) {
1186
- if (group->node.uncompressed_base
1187
- == group->records[0].uncompressed_sum)
1188
- goto again;
1189
- } else if (group->records[record - 1].uncompressed_sum
1190
- == group->records[record].uncompressed_sum) {
1191
- goto again;
1192
- }
1193
- }
1194
-
1195
- iter->internal[ITER_STREAM].p = stream;
1196
- iter->internal[ITER_GROUP].p = group;
1197
- iter->internal[ITER_RECORD].s = record;
1198
-
1199
- iter_set_info(iter);
1200
-
1201
- return false;
1202
- }
1203
-
1204
-
1205
- extern LZMA_API(lzma_bool)
1206
- lzma_index_iter_locate(lzma_index_iter *iter, lzma_vli target)
1207
- {
1208
- const lzma_index *i = iter->internal[ITER_INDEX].p;
1209
-
1210
- // If the target is past the end of the file, return immediately.
1211
- if (i->uncompressed_size <= target)
1212
- return true;
1213
-
1214
- // Locate the Stream containing the target offset.
1215
- const index_stream *stream = index_tree_locate(&i->streams, target);
1216
- assert(stream != NULL);
1217
- target -= stream->node.uncompressed_base;
1218
-
1219
- // Locate the group containing the target offset.
1220
- const index_group *group = index_tree_locate(&stream->groups, target);
1221
- assert(group != NULL);
1222
-
1223
- // Use binary search to locate the exact Record. It is the first
1224
- // Record whose uncompressed_sum is greater than target.
1225
- // This is because we want the rightmost Record that fullfills the
1226
- // search criterion. It is possible that there are empty Blocks;
1227
- // we don't want to return them.
1228
- size_t left = 0;
1229
- size_t right = group->last;
1230
-
1231
- while (left < right) {
1232
- const size_t pos = left + (right - left) / 2;
1233
- if (group->records[pos].uncompressed_sum <= target)
1234
- left = pos + 1;
1235
- else
1236
- right = pos;
1237
- }
1238
-
1239
- iter->internal[ITER_STREAM].p = stream;
1240
- iter->internal[ITER_GROUP].p = group;
1241
- iter->internal[ITER_RECORD].s = left;
1242
-
1243
- iter_set_info(iter);
1244
-
1245
- return false;
1246
- }