node-liblzma 1.0.4 → 1.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (880) hide show
  1. package/History.md +5 -0
  2. package/README.md +65 -37
  3. package/binding.gyp +655 -49
  4. package/lib/lzma.js +326 -319
  5. package/package.json +36 -24
  6. package/prebuilds/darwin-x64/node.napi.node +0 -0
  7. package/prebuilds/linux-x64/node.napi.node +0 -0
  8. package/prebuilds/win32-x64/node.napi.node +0 -0
  9. package/scripts/download_extract_deps.py +29 -0
  10. package/scripts/prebuildify.py +13 -0
  11. package/scripts/walk_sources.py +7 -0
  12. package/.npmignore +0 -1
  13. package/.travis.yml +0 -35
  14. package/build/Makefile +0 -329
  15. package/build/Release/.deps/Release/node-liblzma.node.d +0 -1
  16. package/build/Release/.deps/Release/obj.target/action_after_build.stamp.d +0 -1
  17. package/build/Release/.deps/Release/obj.target/node-liblzma/src/bindings/module.o.d +0 -89
  18. package/build/Release/.deps/Release/obj.target/node-liblzma/src/bindings/node-liblzma.o.d +0 -89
  19. package/build/Release/.deps/Release/obj.target/node-liblzma.node.d +0 -1
  20. package/build/Release/.deps/home/o2/dev/node-liblzma/build/node-liblzma.node.d +0 -1
  21. package/build/Release/node-liblzma.node +0 -0
  22. package/build/Release/obj.target/action_after_build.stamp +0 -0
  23. package/build/Release/obj.target/node-liblzma/src/bindings/module.o +0 -0
  24. package/build/Release/obj.target/node-liblzma/src/bindings/node-liblzma.o +0 -0
  25. package/build/Release/obj.target/node-liblzma.node +0 -0
  26. package/build/action_after_build.target.mk +0 -32
  27. package/build/binding.Makefile +0 -6
  28. package/build/config.gypi +0 -143
  29. package/build/node-liblzma.node +0 -0
  30. package/build/node-liblzma.target.mk +0 -144
  31. package/build.yml +0 -65
  32. package/deps/xz/ABOUT-NLS +0 -1327
  33. package/deps/xz/AUTHORS +0 -27
  34. package/deps/xz/COPYING +0 -65
  35. package/deps/xz/COPYING.GPLv2 +0 -339
  36. package/deps/xz/COPYING.GPLv3 +0 -674
  37. package/deps/xz/COPYING.LGPLv2.1 +0 -502
  38. package/deps/xz/ChangeLog +0 -14953
  39. package/deps/xz/Doxyfile +0 -1234
  40. package/deps/xz/Doxyfile.in +0 -1234
  41. package/deps/xz/INSTALL +0 -554
  42. package/deps/xz/INSTALL.generic +0 -365
  43. package/deps/xz/Makefile +0 -1067
  44. package/deps/xz/Makefile.am +0 -109
  45. package/deps/xz/Makefile.in +0 -1067
  46. package/deps/xz/NEWS +0 -505
  47. package/deps/xz/PACKAGERS +0 -231
  48. package/deps/xz/README +0 -308
  49. package/deps/xz/THANKS +0 -116
  50. package/deps/xz/TODO +0 -111
  51. package/deps/xz/aclocal.m4 +0 -1225
  52. package/deps/xz/autogen.sh +0 -22
  53. package/deps/xz/autom4te.cache/output.0 +0 -21751
  54. package/deps/xz/autom4te.cache/output.1 +0 -21751
  55. package/deps/xz/autom4te.cache/requests +0 -415
  56. package/deps/xz/autom4te.cache/traces.0 +0 -6996
  57. package/deps/xz/autom4te.cache/traces.1 +0 -1783
  58. package/deps/xz/build-aux/compile +0 -347
  59. package/deps/xz/build-aux/config.guess +0 -1558
  60. package/deps/xz/build-aux/config.rpath +0 -672
  61. package/deps/xz/build-aux/config.sub +0 -1791
  62. package/deps/xz/build-aux/depcomp +0 -791
  63. package/deps/xz/build-aux/install-sh +0 -527
  64. package/deps/xz/build-aux/ltmain.sh +0 -9661
  65. package/deps/xz/build-aux/manconv.sh +0 -58
  66. package/deps/xz/build-aux/missing +0 -215
  67. package/deps/xz/build-aux/version.sh +0 -24
  68. package/deps/xz/config.h +0 -487
  69. package/deps/xz/config.h.in +0 -486
  70. package/deps/xz/config.h.in~ +0 -485
  71. package/deps/xz/config.log +0 -5446
  72. package/deps/xz/config.status +0 -2587
  73. package/deps/xz/configure +0 -21751
  74. package/deps/xz/configure.ac +0 -842
  75. package/deps/xz/debug/.deps/crc32.Po +0 -1
  76. package/deps/xz/debug/.deps/full_flush.Po +0 -1
  77. package/deps/xz/debug/.deps/hex2bin.Po +0 -1
  78. package/deps/xz/debug/.deps/known_sizes.Po +0 -1
  79. package/deps/xz/debug/.deps/memusage.Po +0 -1
  80. package/deps/xz/debug/.deps/repeat.Po +0 -1
  81. package/deps/xz/debug/.deps/sync_flush.Po +0 -1
  82. package/deps/xz/debug/Makefile +0 -691
  83. package/deps/xz/debug/Makefile.am +0 -30
  84. package/deps/xz/debug/Makefile.in +0 -691
  85. package/deps/xz/debug/README +0 -17
  86. package/deps/xz/debug/crc32.c +0 -39
  87. package/deps/xz/debug/full_flush.c +0 -103
  88. package/deps/xz/debug/hex2bin.c +0 -53
  89. package/deps/xz/debug/known_sizes.c +0 -129
  90. package/deps/xz/debug/memusage.c +0 -51
  91. package/deps/xz/debug/repeat.c +0 -36
  92. package/deps/xz/debug/sync_flush.c +0 -125
  93. package/deps/xz/debug/translation.bash +0 -100
  94. package/deps/xz/doc/examples/00_README.txt +0 -31
  95. package/deps/xz/doc/examples/01_compress_easy.c +0 -297
  96. package/deps/xz/doc/examples/02_decompress.c +0 -287
  97. package/deps/xz/doc/examples/03_compress_custom.c +0 -193
  98. package/deps/xz/doc/examples/04_compress_easy_mt.c +0 -206
  99. package/deps/xz/doc/examples/Makefile +0 -24
  100. package/deps/xz/doc/examples_old/xz_pipe_comp.c +0 -127
  101. package/deps/xz/doc/examples_old/xz_pipe_decomp.c +0 -123
  102. package/deps/xz/doc/faq.txt +0 -224
  103. package/deps/xz/doc/history.txt +0 -150
  104. package/deps/xz/doc/lzma-file-format.txt +0 -166
  105. package/deps/xz/doc/man/pdf-a4/lzmainfo-a4.pdf +0 -0
  106. package/deps/xz/doc/man/pdf-a4/xz-a4.pdf +0 -0
  107. package/deps/xz/doc/man/pdf-a4/xzdec-a4.pdf +0 -0
  108. package/deps/xz/doc/man/pdf-a4/xzdiff-a4.pdf +0 -0
  109. package/deps/xz/doc/man/pdf-a4/xzgrep-a4.pdf +0 -0
  110. package/deps/xz/doc/man/pdf-a4/xzless-a4.pdf +0 -0
  111. package/deps/xz/doc/man/pdf-a4/xzmore-a4.pdf +0 -0
  112. package/deps/xz/doc/man/pdf-letter/lzmainfo-letter.pdf +0 -0
  113. package/deps/xz/doc/man/pdf-letter/xz-letter.pdf +0 -0
  114. package/deps/xz/doc/man/pdf-letter/xzdec-letter.pdf +0 -0
  115. package/deps/xz/doc/man/pdf-letter/xzdiff-letter.pdf +0 -0
  116. package/deps/xz/doc/man/pdf-letter/xzgrep-letter.pdf +0 -0
  117. package/deps/xz/doc/man/pdf-letter/xzless-letter.pdf +0 -0
  118. package/deps/xz/doc/man/pdf-letter/xzmore-letter.pdf +0 -0
  119. package/deps/xz/doc/man/txt/lzmainfo.txt +0 -40
  120. package/deps/xz/doc/man/txt/xz.txt +0 -1483
  121. package/deps/xz/doc/man/txt/xzdec.txt +0 -80
  122. package/deps/xz/doc/man/txt/xzdiff.txt +0 -36
  123. package/deps/xz/doc/man/txt/xzgrep.txt +0 -39
  124. package/deps/xz/doc/man/txt/xzless.txt +0 -39
  125. package/deps/xz/doc/man/txt/xzmore.txt +0 -34
  126. package/deps/xz/doc/xz-file-format.txt +0 -1150
  127. package/deps/xz/dos/INSTALL.txt +0 -79
  128. package/deps/xz/dos/Makefile +0 -147
  129. package/deps/xz/dos/README.txt +0 -123
  130. package/deps/xz/dos/config.h +0 -130
  131. package/deps/xz/extra/7z2lzma/7z2lzma.bash +0 -115
  132. package/deps/xz/extra/scanlzma/scanlzma.c +0 -84
  133. package/deps/xz/include/lzma/base.h +0 -654
  134. package/deps/xz/include/lzma/bcj.h +0 -90
  135. package/deps/xz/include/lzma/block.h +0 -581
  136. package/deps/xz/include/lzma/check.h +0 -150
  137. package/deps/xz/include/lzma/container.h +0 -619
  138. package/deps/xz/include/lzma/delta.h +0 -77
  139. package/deps/xz/include/lzma/filter.h +0 -425
  140. package/deps/xz/include/lzma/hardware.h +0 -64
  141. package/deps/xz/include/lzma/index.h +0 -682
  142. package/deps/xz/include/lzma/index_hash.h +0 -107
  143. package/deps/xz/include/lzma/lzma12.h +0 -420
  144. package/deps/xz/include/lzma/stream_flags.h +0 -223
  145. package/deps/xz/include/lzma/version.h +0 -121
  146. package/deps/xz/include/lzma/vli.h +0 -166
  147. package/deps/xz/include/lzma.h +0 -321
  148. package/deps/xz/lib/.deps/getopt.Po +0 -1
  149. package/deps/xz/lib/.deps/getopt1.Po +0 -1
  150. package/deps/xz/lib/Makefile +0 -566
  151. package/deps/xz/lib/Makefile.am +0 -32
  152. package/deps/xz/lib/Makefile.in +0 -566
  153. package/deps/xz/lib/getopt.c +0 -1197
  154. package/deps/xz/lib/getopt.in.h +0 -226
  155. package/deps/xz/lib/getopt1.c +0 -171
  156. package/deps/xz/lib/getopt_int.h +0 -131
  157. package/deps/xz/lib/liblzma.a +0 -0
  158. package/deps/xz/lib/liblzma.la +0 -41
  159. package/deps/xz/lib/pkgconfig/liblzma.pc +0 -19
  160. package/deps/xz/libtool +0 -10221
  161. package/deps/xz/m4/ax_pthread.m4 +0 -332
  162. package/deps/xz/m4/codeset.m4 +0 -21
  163. package/deps/xz/m4/fcntl-o.m4 +0 -81
  164. package/deps/xz/m4/getopt.m4 +0 -71
  165. package/deps/xz/m4/gettext.m4 +0 -383
  166. package/deps/xz/m4/glibc2.m4 +0 -30
  167. package/deps/xz/m4/glibc21.m4 +0 -30
  168. package/deps/xz/m4/iconv.m4 +0 -199
  169. package/deps/xz/m4/intdiv0.m4 +0 -84
  170. package/deps/xz/m4/intl.m4 +0 -294
  171. package/deps/xz/m4/intldir.m4 +0 -19
  172. package/deps/xz/m4/intlmacosx.m4 +0 -51
  173. package/deps/xz/m4/intmax.m4 +0 -33
  174. package/deps/xz/m4/inttypes-pri.m4 +0 -36
  175. package/deps/xz/m4/inttypes_h.m4 +0 -26
  176. package/deps/xz/m4/lcmessage.m4 +0 -31
  177. package/deps/xz/m4/lib-ld.m4 +0 -110
  178. package/deps/xz/m4/lib-link.m4 +0 -774
  179. package/deps/xz/m4/lib-prefix.m4 +0 -224
  180. package/deps/xz/m4/libtool.m4 +0 -7997
  181. package/deps/xz/m4/lock.m4 +0 -37
  182. package/deps/xz/m4/longlong.m4 +0 -106
  183. package/deps/xz/m4/ltoptions.m4 +0 -384
  184. package/deps/xz/m4/ltsugar.m4 +0 -123
  185. package/deps/xz/m4/ltversion.m4 +0 -23
  186. package/deps/xz/m4/lt~obsolete.m4 +0 -98
  187. package/deps/xz/m4/nls.m4 +0 -32
  188. package/deps/xz/m4/po.m4 +0 -449
  189. package/deps/xz/m4/posix-shell.m4 +0 -63
  190. package/deps/xz/m4/printf-posix.m4 +0 -45
  191. package/deps/xz/m4/progtest.m4 +0 -92
  192. package/deps/xz/m4/size_max.m4 +0 -75
  193. package/deps/xz/m4/stdint_h.m4 +0 -26
  194. package/deps/xz/m4/threadlib.m4 +0 -347
  195. package/deps/xz/m4/tuklib_common.m4 +0 -22
  196. package/deps/xz/m4/tuklib_cpucores.m4 +0 -148
  197. package/deps/xz/m4/tuklib_integer.m4 +0 -74
  198. package/deps/xz/m4/tuklib_mbstr.m4 +0 -30
  199. package/deps/xz/m4/tuklib_physmem.m4 +0 -212
  200. package/deps/xz/m4/tuklib_progname.m4 +0 -25
  201. package/deps/xz/m4/uintmax_t.m4 +0 -30
  202. package/deps/xz/m4/visibility.m4 +0 -74
  203. package/deps/xz/m4/wchar_t.m4 +0 -20
  204. package/deps/xz/m4/wint_t.m4 +0 -28
  205. package/deps/xz/m4/xsize.m4 +0 -13
  206. package/deps/xz/macosx/build.sh +0 -113
  207. package/deps/xz/po/LINGUAS +0 -6
  208. package/deps/xz/po/Makefile +0 -549
  209. package/deps/xz/po/Makefile.in +0 -444
  210. package/deps/xz/po/Makefile.in.in +0 -444
  211. package/deps/xz/po/Makevars +0 -46
  212. package/deps/xz/po/Makevars.template +0 -41
  213. package/deps/xz/po/POTFILES +0 -12
  214. package/deps/xz/po/POTFILES.in +0 -13
  215. package/deps/xz/po/Rules-quot +0 -47
  216. package/deps/xz/po/boldquot.sed +0 -10
  217. package/deps/xz/po/cs.gmo +0 -0
  218. package/deps/xz/po/cs.po +0 -989
  219. package/deps/xz/po/de.gmo +0 -0
  220. package/deps/xz/po/de.po +0 -990
  221. package/deps/xz/po/en@boldquot.header +0 -25
  222. package/deps/xz/po/en@quot.header +0 -22
  223. package/deps/xz/po/fr.gmo +0 -0
  224. package/deps/xz/po/fr.po +0 -974
  225. package/deps/xz/po/insert-header.sin +0 -23
  226. package/deps/xz/po/it.gmo +0 -0
  227. package/deps/xz/po/it.po +0 -975
  228. package/deps/xz/po/pl.gmo +0 -0
  229. package/deps/xz/po/pl.po +0 -964
  230. package/deps/xz/po/quot.sed +0 -6
  231. package/deps/xz/po/remove-potcdate.sin +0 -19
  232. package/deps/xz/po/stamp-po +0 -1
  233. package/deps/xz/po/vi.gmo +0 -0
  234. package/deps/xz/po/vi.po +0 -970
  235. package/deps/xz/po/xz.pot +0 -854
  236. package/deps/xz/share/doc/xz/AUTHORS +0 -27
  237. package/deps/xz/share/doc/xz/COPYING +0 -65
  238. package/deps/xz/share/doc/xz/COPYING.GPLv2 +0 -339
  239. package/deps/xz/share/doc/xz/NEWS +0 -505
  240. package/deps/xz/share/doc/xz/README +0 -308
  241. package/deps/xz/share/doc/xz/THANKS +0 -116
  242. package/deps/xz/share/doc/xz/TODO +0 -111
  243. package/deps/xz/share/doc/xz/examples/00_README.txt +0 -31
  244. package/deps/xz/share/doc/xz/examples/01_compress_easy.c +0 -297
  245. package/deps/xz/share/doc/xz/examples/02_decompress.c +0 -287
  246. package/deps/xz/share/doc/xz/examples/03_compress_custom.c +0 -193
  247. package/deps/xz/share/doc/xz/examples/04_compress_easy_mt.c +0 -206
  248. package/deps/xz/share/doc/xz/examples/Makefile +0 -24
  249. package/deps/xz/share/doc/xz/examples_old/xz_pipe_comp.c +0 -127
  250. package/deps/xz/share/doc/xz/examples_old/xz_pipe_decomp.c +0 -123
  251. package/deps/xz/share/doc/xz/faq.txt +0 -224
  252. package/deps/xz/share/doc/xz/history.txt +0 -150
  253. package/deps/xz/share/doc/xz/lzma-file-format.txt +0 -166
  254. package/deps/xz/share/doc/xz/xz-file-format.txt +0 -1150
  255. package/deps/xz/share/locale/cs/LC_MESSAGES/xz.mo +0 -0
  256. package/deps/xz/share/locale/de/LC_MESSAGES/xz.mo +0 -0
  257. package/deps/xz/share/locale/fr/LC_MESSAGES/xz.mo +0 -0
  258. package/deps/xz/share/locale/it/LC_MESSAGES/xz.mo +0 -0
  259. package/deps/xz/share/locale/pl/LC_MESSAGES/xz.mo +0 -0
  260. package/deps/xz/share/locale/vi/LC_MESSAGES/xz.mo +0 -0
  261. package/deps/xz/src/Makefile +0 -674
  262. package/deps/xz/src/Makefile.am +0 -42
  263. package/deps/xz/src/Makefile.in +0 -674
  264. package/deps/xz/src/common/common_w32res.rc +0 -50
  265. package/deps/xz/src/common/mythread.h +0 -521
  266. package/deps/xz/src/common/sysdefs.h +0 -202
  267. package/deps/xz/src/common/tuklib_common.h +0 -71
  268. package/deps/xz/src/common/tuklib_config.h +0 -7
  269. package/deps/xz/src/common/tuklib_cpucores.c +0 -91
  270. package/deps/xz/src/common/tuklib_cpucores.h +0 -23
  271. package/deps/xz/src/common/tuklib_exit.c +0 -57
  272. package/deps/xz/src/common/tuklib_exit.h +0 -25
  273. package/deps/xz/src/common/tuklib_gettext.h +0 -44
  274. package/deps/xz/src/common/tuklib_integer.h +0 -523
  275. package/deps/xz/src/common/tuklib_mbstr.h +0 -66
  276. package/deps/xz/src/common/tuklib_mbstr_fw.c +0 -31
  277. package/deps/xz/src/common/tuklib_mbstr_width.c +0 -64
  278. package/deps/xz/src/common/tuklib_open_stdxxx.c +0 -57
  279. package/deps/xz/src/common/tuklib_open_stdxxx.h +0 -23
  280. package/deps/xz/src/common/tuklib_physmem.c +0 -215
  281. package/deps/xz/src/common/tuklib_physmem.h +0 -28
  282. package/deps/xz/src/common/tuklib_progname.c +0 -50
  283. package/deps/xz/src/common/tuklib_progname.h +0 -32
  284. package/deps/xz/src/liblzma/.deps/liblzma_la-alone_decoder.Plo +0 -269
  285. package/deps/xz/src/liblzma/.deps/liblzma_la-alone_encoder.Plo +0 -263
  286. package/deps/xz/src/liblzma/.deps/liblzma_la-arm.Plo +0 -263
  287. package/deps/xz/src/liblzma/.deps/liblzma_la-armthumb.Plo +0 -263
  288. package/deps/xz/src/liblzma/.deps/liblzma_la-auto_decoder.Plo +0 -263
  289. package/deps/xz/src/liblzma/.deps/liblzma_la-block_buffer_decoder.Plo +0 -261
  290. package/deps/xz/src/liblzma/.deps/liblzma_la-block_buffer_encoder.Plo +0 -273
  291. package/deps/xz/src/liblzma/.deps/liblzma_la-block_decoder.Plo +0 -268
  292. package/deps/xz/src/liblzma/.deps/liblzma_la-block_encoder.Plo +0 -268
  293. package/deps/xz/src/liblzma/.deps/liblzma_la-block_header_decoder.Plo +0 -263
  294. package/deps/xz/src/liblzma/.deps/liblzma_la-block_header_encoder.Plo +0 -263
  295. package/deps/xz/src/liblzma/.deps/liblzma_la-block_util.Plo +0 -260
  296. package/deps/xz/src/liblzma/.deps/liblzma_la-check.Plo +0 -261
  297. package/deps/xz/src/liblzma/.deps/liblzma_la-common.Plo +0 -258
  298. package/deps/xz/src/liblzma/.deps/liblzma_la-crc32_fast.Plo +0 -263
  299. package/deps/xz/src/liblzma/.deps/liblzma_la-crc32_small.Plo +0 -1
  300. package/deps/xz/src/liblzma/.deps/liblzma_la-crc32_table.Plo +0 -260
  301. package/deps/xz/src/liblzma/.deps/liblzma_la-crc32_x86.Plo +0 -1
  302. package/deps/xz/src/liblzma/.deps/liblzma_la-crc64_fast.Plo +0 -263
  303. package/deps/xz/src/liblzma/.deps/liblzma_la-crc64_small.Plo +0 -1
  304. package/deps/xz/src/liblzma/.deps/liblzma_la-crc64_table.Plo +0 -260
  305. package/deps/xz/src/liblzma/.deps/liblzma_la-crc64_x86.Plo +0 -1
  306. package/deps/xz/src/liblzma/.deps/liblzma_la-delta_common.Plo +0 -263
  307. package/deps/xz/src/liblzma/.deps/liblzma_la-delta_decoder.Plo +0 -265
  308. package/deps/xz/src/liblzma/.deps/liblzma_la-delta_encoder.Plo +0 -265
  309. package/deps/xz/src/liblzma/.deps/liblzma_la-easy_buffer_encoder.Plo +0 -261
  310. package/deps/xz/src/liblzma/.deps/liblzma_la-easy_decoder_memusage.Plo +0 -261
  311. package/deps/xz/src/liblzma/.deps/liblzma_la-easy_encoder.Plo +0 -261
  312. package/deps/xz/src/liblzma/.deps/liblzma_la-easy_encoder_memusage.Plo +0 -261
  313. package/deps/xz/src/liblzma/.deps/liblzma_la-easy_preset.Plo +0 -261
  314. package/deps/xz/src/liblzma/.deps/liblzma_la-fastpos_table.Plo +0 -261
  315. package/deps/xz/src/liblzma/.deps/liblzma_la-filter_buffer_decoder.Plo +0 -261
  316. package/deps/xz/src/liblzma/.deps/liblzma_la-filter_buffer_encoder.Plo +0 -261
  317. package/deps/xz/src/liblzma/.deps/liblzma_la-filter_common.Plo +0 -261
  318. package/deps/xz/src/liblzma/.deps/liblzma_la-filter_decoder.Plo +0 -283
  319. package/deps/xz/src/liblzma/.deps/liblzma_la-filter_encoder.Plo +0 -283
  320. package/deps/xz/src/liblzma/.deps/liblzma_la-filter_flags_decoder.Plo +0 -261
  321. package/deps/xz/src/liblzma/.deps/liblzma_la-filter_flags_encoder.Plo +0 -261
  322. package/deps/xz/src/liblzma/.deps/liblzma_la-hardware_cputhreads.Plo +0 -260
  323. package/deps/xz/src/liblzma/.deps/liblzma_la-hardware_physmem.Plo +0 -260
  324. package/deps/xz/src/liblzma/.deps/liblzma_la-ia64.Plo +0 -263
  325. package/deps/xz/src/liblzma/.deps/liblzma_la-index.Plo +0 -262
  326. package/deps/xz/src/liblzma/.deps/liblzma_la-index_decoder.Plo +0 -266
  327. package/deps/xz/src/liblzma/.deps/liblzma_la-index_encoder.Plo +0 -268
  328. package/deps/xz/src/liblzma/.deps/liblzma_la-index_hash.Plo +0 -265
  329. package/deps/xz/src/liblzma/.deps/liblzma_la-lz_decoder.Plo +0 -261
  330. package/deps/xz/src/liblzma/.deps/liblzma_la-lz_encoder.Plo +0 -286
  331. package/deps/xz/src/liblzma/.deps/liblzma_la-lz_encoder_mf.Plo +0 -286
  332. package/deps/xz/src/liblzma/.deps/liblzma_la-lzma2_decoder.Plo +0 -266
  333. package/deps/xz/src/liblzma/.deps/liblzma_la-lzma2_encoder.Plo +0 -268
  334. package/deps/xz/src/liblzma/.deps/liblzma_la-lzma_decoder.Plo +0 -274
  335. package/deps/xz/src/liblzma/.deps/liblzma_la-lzma_encoder.Plo +0 -285
  336. package/deps/xz/src/liblzma/.deps/liblzma_la-lzma_encoder_optimum_fast.Plo +0 -300
  337. package/deps/xz/src/liblzma/.deps/liblzma_la-lzma_encoder_optimum_normal.Plo +0 -303
  338. package/deps/xz/src/liblzma/.deps/liblzma_la-lzma_encoder_presets.Plo +0 -259
  339. package/deps/xz/src/liblzma/.deps/liblzma_la-outqueue.Plo +0 -260
  340. package/deps/xz/src/liblzma/.deps/liblzma_la-powerpc.Plo +0 -263
  341. package/deps/xz/src/liblzma/.deps/liblzma_la-price_table.Plo +0 -266
  342. package/deps/xz/src/liblzma/.deps/liblzma_la-sha256.Plo +0 -261
  343. package/deps/xz/src/liblzma/.deps/liblzma_la-simple_coder.Plo +0 -263
  344. package/deps/xz/src/liblzma/.deps/liblzma_la-simple_decoder.Plo +0 -263
  345. package/deps/xz/src/liblzma/.deps/liblzma_la-simple_encoder.Plo +0 -263
  346. package/deps/xz/src/liblzma/.deps/liblzma_la-sparc.Plo +0 -263
  347. package/deps/xz/src/liblzma/.deps/liblzma_la-stream_buffer_decoder.Plo +0 -261
  348. package/deps/xz/src/liblzma/.deps/liblzma_la-stream_buffer_encoder.Plo +0 -261
  349. package/deps/xz/src/liblzma/.deps/liblzma_la-stream_decoder.Plo +0 -263
  350. package/deps/xz/src/liblzma/.deps/liblzma_la-stream_encoder.Plo +0 -263
  351. package/deps/xz/src/liblzma/.deps/liblzma_la-stream_encoder_mt.Plo +0 -273
  352. package/deps/xz/src/liblzma/.deps/liblzma_la-stream_flags_common.Plo +0 -261
  353. package/deps/xz/src/liblzma/.deps/liblzma_la-stream_flags_decoder.Plo +0 -261
  354. package/deps/xz/src/liblzma/.deps/liblzma_la-stream_flags_encoder.Plo +0 -261
  355. package/deps/xz/src/liblzma/.deps/liblzma_la-tuklib_cpucores.Plo +0 -170
  356. package/deps/xz/src/liblzma/.deps/liblzma_la-tuklib_physmem.Plo +0 -170
  357. package/deps/xz/src/liblzma/.deps/liblzma_la-vli_decoder.Plo +0 -258
  358. package/deps/xz/src/liblzma/.deps/liblzma_la-vli_encoder.Plo +0 -258
  359. package/deps/xz/src/liblzma/.deps/liblzma_la-vli_size.Plo +0 -258
  360. package/deps/xz/src/liblzma/.deps/liblzma_la-x86.Plo +0 -263
  361. package/deps/xz/src/liblzma/.libs/liblzma.a +0 -0
  362. package/deps/xz/src/liblzma/.libs/liblzma.lai +0 -41
  363. package/deps/xz/src/liblzma/Makefile +0 -1858
  364. package/deps/xz/src/liblzma/Makefile.am +0 -122
  365. package/deps/xz/src/liblzma/Makefile.in +0 -1858
  366. package/deps/xz/src/liblzma/api/Makefile +0 -608
  367. package/deps/xz/src/liblzma/api/Makefile.am +0 -23
  368. package/deps/xz/src/liblzma/api/Makefile.in +0 -608
  369. package/deps/xz/src/liblzma/api/lzma/base.h +0 -654
  370. package/deps/xz/src/liblzma/api/lzma/bcj.h +0 -90
  371. package/deps/xz/src/liblzma/api/lzma/block.h +0 -581
  372. package/deps/xz/src/liblzma/api/lzma/check.h +0 -150
  373. package/deps/xz/src/liblzma/api/lzma/container.h +0 -619
  374. package/deps/xz/src/liblzma/api/lzma/delta.h +0 -77
  375. package/deps/xz/src/liblzma/api/lzma/filter.h +0 -425
  376. package/deps/xz/src/liblzma/api/lzma/hardware.h +0 -64
  377. package/deps/xz/src/liblzma/api/lzma/index.h +0 -682
  378. package/deps/xz/src/liblzma/api/lzma/index_hash.h +0 -107
  379. package/deps/xz/src/liblzma/api/lzma/lzma12.h +0 -420
  380. package/deps/xz/src/liblzma/api/lzma/stream_flags.h +0 -223
  381. package/deps/xz/src/liblzma/api/lzma/version.h +0 -121
  382. package/deps/xz/src/liblzma/api/lzma/vli.h +0 -166
  383. package/deps/xz/src/liblzma/api/lzma.h +0 -321
  384. package/deps/xz/src/liblzma/check/Makefile.inc +0 -53
  385. package/deps/xz/src/liblzma/check/check.c +0 -174
  386. package/deps/xz/src/liblzma/check/check.h +0 -162
  387. package/deps/xz/src/liblzma/check/crc32_fast.c +0 -82
  388. package/deps/xz/src/liblzma/check/crc32_small.c +0 -61
  389. package/deps/xz/src/liblzma/check/crc32_table.c +0 -19
  390. package/deps/xz/src/liblzma/check/crc32_table_be.h +0 -525
  391. package/deps/xz/src/liblzma/check/crc32_table_le.h +0 -525
  392. package/deps/xz/src/liblzma/check/crc32_tablegen.c +0 -117
  393. package/deps/xz/src/liblzma/check/crc32_x86.S +0 -304
  394. package/deps/xz/src/liblzma/check/crc64_fast.c +0 -72
  395. package/deps/xz/src/liblzma/check/crc64_small.c +0 -53
  396. package/deps/xz/src/liblzma/check/crc64_table.c +0 -19
  397. package/deps/xz/src/liblzma/check/crc64_table_be.h +0 -521
  398. package/deps/xz/src/liblzma/check/crc64_table_le.h +0 -521
  399. package/deps/xz/src/liblzma/check/crc64_tablegen.c +0 -88
  400. package/deps/xz/src/liblzma/check/crc64_x86.S +0 -287
  401. package/deps/xz/src/liblzma/check/crc_macros.h +0 -30
  402. package/deps/xz/src/liblzma/check/sha256.c +0 -196
  403. package/deps/xz/src/liblzma/common/Makefile.inc +0 -76
  404. package/deps/xz/src/liblzma/common/alone_decoder.c +0 -238
  405. package/deps/xz/src/liblzma/common/alone_decoder.h +0 -23
  406. package/deps/xz/src/liblzma/common/alone_encoder.c +0 -157
  407. package/deps/xz/src/liblzma/common/auto_decoder.c +0 -186
  408. package/deps/xz/src/liblzma/common/block_buffer_decoder.c +0 -80
  409. package/deps/xz/src/liblzma/common/block_buffer_encoder.c +0 -337
  410. package/deps/xz/src/liblzma/common/block_buffer_encoder.h +0 -24
  411. package/deps/xz/src/liblzma/common/block_decoder.c +0 -252
  412. package/deps/xz/src/liblzma/common/block_decoder.h +0 -22
  413. package/deps/xz/src/liblzma/common/block_encoder.c +0 -217
  414. package/deps/xz/src/liblzma/common/block_encoder.h +0 -47
  415. package/deps/xz/src/liblzma/common/block_header_decoder.c +0 -124
  416. package/deps/xz/src/liblzma/common/block_header_encoder.c +0 -132
  417. package/deps/xz/src/liblzma/common/block_util.c +0 -90
  418. package/deps/xz/src/liblzma/common/common.c +0 -443
  419. package/deps/xz/src/liblzma/common/common.h +0 -318
  420. package/deps/xz/src/liblzma/common/easy_buffer_encoder.c +0 -27
  421. package/deps/xz/src/liblzma/common/easy_decoder_memusage.c +0 -24
  422. package/deps/xz/src/liblzma/common/easy_encoder.c +0 -24
  423. package/deps/xz/src/liblzma/common/easy_encoder_memusage.c +0 -24
  424. package/deps/xz/src/liblzma/common/easy_preset.c +0 -27
  425. package/deps/xz/src/liblzma/common/easy_preset.h +0 -32
  426. package/deps/xz/src/liblzma/common/filter_buffer_decoder.c +0 -88
  427. package/deps/xz/src/liblzma/common/filter_buffer_encoder.c +0 -55
  428. package/deps/xz/src/liblzma/common/filter_common.c +0 -337
  429. package/deps/xz/src/liblzma/common/filter_common.h +0 -48
  430. package/deps/xz/src/liblzma/common/filter_decoder.c +0 -184
  431. package/deps/xz/src/liblzma/common/filter_decoder.h +0 -23
  432. package/deps/xz/src/liblzma/common/filter_encoder.c +0 -286
  433. package/deps/xz/src/liblzma/common/filter_encoder.h +0 -27
  434. package/deps/xz/src/liblzma/common/filter_flags_decoder.c +0 -46
  435. package/deps/xz/src/liblzma/common/filter_flags_encoder.c +0 -56
  436. package/deps/xz/src/liblzma/common/hardware_cputhreads.c +0 -22
  437. package/deps/xz/src/liblzma/common/hardware_physmem.c +0 -25
  438. package/deps/xz/src/liblzma/common/index.c +0 -1246
  439. package/deps/xz/src/liblzma/common/index.h +0 -73
  440. package/deps/xz/src/liblzma/common/index_decoder.c +0 -345
  441. package/deps/xz/src/liblzma/common/index_encoder.c +0 -254
  442. package/deps/xz/src/liblzma/common/index_encoder.h +0 -23
  443. package/deps/xz/src/liblzma/common/index_hash.c +0 -334
  444. package/deps/xz/src/liblzma/common/memcmplen.h +0 -175
  445. package/deps/xz/src/liblzma/common/outqueue.c +0 -184
  446. package/deps/xz/src/liblzma/common/outqueue.h +0 -156
  447. package/deps/xz/src/liblzma/common/stream_buffer_decoder.c +0 -91
  448. package/deps/xz/src/liblzma/common/stream_buffer_encoder.c +0 -141
  449. package/deps/xz/src/liblzma/common/stream_decoder.c +0 -462
  450. package/deps/xz/src/liblzma/common/stream_decoder.h +0 -22
  451. package/deps/xz/src/liblzma/common/stream_encoder.c +0 -332
  452. package/deps/xz/src/liblzma/common/stream_encoder_mt.c +0 -1131
  453. package/deps/xz/src/liblzma/common/stream_flags_common.c +0 -47
  454. package/deps/xz/src/liblzma/common/stream_flags_common.h +0 -33
  455. package/deps/xz/src/liblzma/common/stream_flags_decoder.c +0 -82
  456. package/deps/xz/src/liblzma/common/stream_flags_encoder.c +0 -86
  457. package/deps/xz/src/liblzma/common/vli_decoder.c +0 -86
  458. package/deps/xz/src/liblzma/common/vli_encoder.c +0 -69
  459. package/deps/xz/src/liblzma/common/vli_size.c +0 -30
  460. package/deps/xz/src/liblzma/delta/Makefile.inc +0 -23
  461. package/deps/xz/src/liblzma/delta/delta_common.c +0 -70
  462. package/deps/xz/src/liblzma/delta/delta_common.h +0 -20
  463. package/deps/xz/src/liblzma/delta/delta_decoder.c +0 -76
  464. package/deps/xz/src/liblzma/delta/delta_decoder.h +0 -26
  465. package/deps/xz/src/liblzma/delta/delta_encoder.c +0 -121
  466. package/deps/xz/src/liblzma/delta/delta_encoder.h +0 -24
  467. package/deps/xz/src/liblzma/delta/delta_private.h +0 -37
  468. package/deps/xz/src/liblzma/liblzma.la +0 -41
  469. package/deps/xz/src/liblzma/liblzma.map +0 -108
  470. package/deps/xz/src/liblzma/liblzma.pc +0 -19
  471. package/deps/xz/src/liblzma/liblzma.pc.in +0 -19
  472. package/deps/xz/src/liblzma/liblzma_la-alone_decoder.lo +0 -12
  473. package/deps/xz/src/liblzma/liblzma_la-alone_decoder.o +0 -0
  474. package/deps/xz/src/liblzma/liblzma_la-alone_encoder.lo +0 -12
  475. package/deps/xz/src/liblzma/liblzma_la-alone_encoder.o +0 -0
  476. package/deps/xz/src/liblzma/liblzma_la-arm.lo +0 -12
  477. package/deps/xz/src/liblzma/liblzma_la-arm.o +0 -0
  478. package/deps/xz/src/liblzma/liblzma_la-armthumb.lo +0 -12
  479. package/deps/xz/src/liblzma/liblzma_la-armthumb.o +0 -0
  480. package/deps/xz/src/liblzma/liblzma_la-auto_decoder.lo +0 -12
  481. package/deps/xz/src/liblzma/liblzma_la-auto_decoder.o +0 -0
  482. package/deps/xz/src/liblzma/liblzma_la-block_buffer_decoder.lo +0 -12
  483. package/deps/xz/src/liblzma/liblzma_la-block_buffer_decoder.o +0 -0
  484. package/deps/xz/src/liblzma/liblzma_la-block_buffer_encoder.lo +0 -12
  485. package/deps/xz/src/liblzma/liblzma_la-block_buffer_encoder.o +0 -0
  486. package/deps/xz/src/liblzma/liblzma_la-block_decoder.lo +0 -12
  487. package/deps/xz/src/liblzma/liblzma_la-block_decoder.o +0 -0
  488. package/deps/xz/src/liblzma/liblzma_la-block_encoder.lo +0 -12
  489. package/deps/xz/src/liblzma/liblzma_la-block_encoder.o +0 -0
  490. package/deps/xz/src/liblzma/liblzma_la-block_header_decoder.lo +0 -12
  491. package/deps/xz/src/liblzma/liblzma_la-block_header_decoder.o +0 -0
  492. package/deps/xz/src/liblzma/liblzma_la-block_header_encoder.lo +0 -12
  493. package/deps/xz/src/liblzma/liblzma_la-block_header_encoder.o +0 -0
  494. package/deps/xz/src/liblzma/liblzma_la-block_util.lo +0 -12
  495. package/deps/xz/src/liblzma/liblzma_la-block_util.o +0 -0
  496. package/deps/xz/src/liblzma/liblzma_la-check.lo +0 -12
  497. package/deps/xz/src/liblzma/liblzma_la-check.o +0 -0
  498. package/deps/xz/src/liblzma/liblzma_la-common.lo +0 -12
  499. package/deps/xz/src/liblzma/liblzma_la-common.o +0 -0
  500. package/deps/xz/src/liblzma/liblzma_la-crc32_fast.lo +0 -12
  501. package/deps/xz/src/liblzma/liblzma_la-crc32_fast.o +0 -0
  502. package/deps/xz/src/liblzma/liblzma_la-crc32_table.lo +0 -12
  503. package/deps/xz/src/liblzma/liblzma_la-crc32_table.o +0 -0
  504. package/deps/xz/src/liblzma/liblzma_la-crc64_fast.lo +0 -12
  505. package/deps/xz/src/liblzma/liblzma_la-crc64_fast.o +0 -0
  506. package/deps/xz/src/liblzma/liblzma_la-crc64_table.lo +0 -12
  507. package/deps/xz/src/liblzma/liblzma_la-crc64_table.o +0 -0
  508. package/deps/xz/src/liblzma/liblzma_la-delta_common.lo +0 -12
  509. package/deps/xz/src/liblzma/liblzma_la-delta_common.o +0 -0
  510. package/deps/xz/src/liblzma/liblzma_la-delta_decoder.lo +0 -12
  511. package/deps/xz/src/liblzma/liblzma_la-delta_decoder.o +0 -0
  512. package/deps/xz/src/liblzma/liblzma_la-delta_encoder.lo +0 -12
  513. package/deps/xz/src/liblzma/liblzma_la-delta_encoder.o +0 -0
  514. package/deps/xz/src/liblzma/liblzma_la-easy_buffer_encoder.lo +0 -12
  515. package/deps/xz/src/liblzma/liblzma_la-easy_buffer_encoder.o +0 -0
  516. package/deps/xz/src/liblzma/liblzma_la-easy_decoder_memusage.lo +0 -12
  517. package/deps/xz/src/liblzma/liblzma_la-easy_decoder_memusage.o +0 -0
  518. package/deps/xz/src/liblzma/liblzma_la-easy_encoder.lo +0 -12
  519. package/deps/xz/src/liblzma/liblzma_la-easy_encoder.o +0 -0
  520. package/deps/xz/src/liblzma/liblzma_la-easy_encoder_memusage.lo +0 -12
  521. package/deps/xz/src/liblzma/liblzma_la-easy_encoder_memusage.o +0 -0
  522. package/deps/xz/src/liblzma/liblzma_la-easy_preset.lo +0 -12
  523. package/deps/xz/src/liblzma/liblzma_la-easy_preset.o +0 -0
  524. package/deps/xz/src/liblzma/liblzma_la-fastpos_table.lo +0 -12
  525. package/deps/xz/src/liblzma/liblzma_la-fastpos_table.o +0 -0
  526. package/deps/xz/src/liblzma/liblzma_la-filter_buffer_decoder.lo +0 -12
  527. package/deps/xz/src/liblzma/liblzma_la-filter_buffer_decoder.o +0 -0
  528. package/deps/xz/src/liblzma/liblzma_la-filter_buffer_encoder.lo +0 -12
  529. package/deps/xz/src/liblzma/liblzma_la-filter_buffer_encoder.o +0 -0
  530. package/deps/xz/src/liblzma/liblzma_la-filter_common.lo +0 -12
  531. package/deps/xz/src/liblzma/liblzma_la-filter_common.o +0 -0
  532. package/deps/xz/src/liblzma/liblzma_la-filter_decoder.lo +0 -12
  533. package/deps/xz/src/liblzma/liblzma_la-filter_decoder.o +0 -0
  534. package/deps/xz/src/liblzma/liblzma_la-filter_encoder.lo +0 -12
  535. package/deps/xz/src/liblzma/liblzma_la-filter_encoder.o +0 -0
  536. package/deps/xz/src/liblzma/liblzma_la-filter_flags_decoder.lo +0 -12
  537. package/deps/xz/src/liblzma/liblzma_la-filter_flags_decoder.o +0 -0
  538. package/deps/xz/src/liblzma/liblzma_la-filter_flags_encoder.lo +0 -12
  539. package/deps/xz/src/liblzma/liblzma_la-filter_flags_encoder.o +0 -0
  540. package/deps/xz/src/liblzma/liblzma_la-hardware_cputhreads.lo +0 -12
  541. package/deps/xz/src/liblzma/liblzma_la-hardware_cputhreads.o +0 -0
  542. package/deps/xz/src/liblzma/liblzma_la-hardware_physmem.lo +0 -12
  543. package/deps/xz/src/liblzma/liblzma_la-hardware_physmem.o +0 -0
  544. package/deps/xz/src/liblzma/liblzma_la-ia64.lo +0 -12
  545. package/deps/xz/src/liblzma/liblzma_la-ia64.o +0 -0
  546. package/deps/xz/src/liblzma/liblzma_la-index.lo +0 -12
  547. package/deps/xz/src/liblzma/liblzma_la-index.o +0 -0
  548. package/deps/xz/src/liblzma/liblzma_la-index_decoder.lo +0 -12
  549. package/deps/xz/src/liblzma/liblzma_la-index_decoder.o +0 -0
  550. package/deps/xz/src/liblzma/liblzma_la-index_encoder.lo +0 -12
  551. package/deps/xz/src/liblzma/liblzma_la-index_encoder.o +0 -0
  552. package/deps/xz/src/liblzma/liblzma_la-index_hash.lo +0 -12
  553. package/deps/xz/src/liblzma/liblzma_la-index_hash.o +0 -0
  554. package/deps/xz/src/liblzma/liblzma_la-lz_decoder.lo +0 -12
  555. package/deps/xz/src/liblzma/liblzma_la-lz_decoder.o +0 -0
  556. package/deps/xz/src/liblzma/liblzma_la-lz_encoder.lo +0 -12
  557. package/deps/xz/src/liblzma/liblzma_la-lz_encoder.o +0 -0
  558. package/deps/xz/src/liblzma/liblzma_la-lz_encoder_mf.lo +0 -12
  559. package/deps/xz/src/liblzma/liblzma_la-lz_encoder_mf.o +0 -0
  560. package/deps/xz/src/liblzma/liblzma_la-lzma2_decoder.lo +0 -12
  561. package/deps/xz/src/liblzma/liblzma_la-lzma2_decoder.o +0 -0
  562. package/deps/xz/src/liblzma/liblzma_la-lzma2_encoder.lo +0 -12
  563. package/deps/xz/src/liblzma/liblzma_la-lzma2_encoder.o +0 -0
  564. package/deps/xz/src/liblzma/liblzma_la-lzma_decoder.lo +0 -12
  565. package/deps/xz/src/liblzma/liblzma_la-lzma_decoder.o +0 -0
  566. package/deps/xz/src/liblzma/liblzma_la-lzma_encoder.lo +0 -12
  567. package/deps/xz/src/liblzma/liblzma_la-lzma_encoder.o +0 -0
  568. package/deps/xz/src/liblzma/liblzma_la-lzma_encoder_optimum_fast.lo +0 -12
  569. package/deps/xz/src/liblzma/liblzma_la-lzma_encoder_optimum_fast.o +0 -0
  570. package/deps/xz/src/liblzma/liblzma_la-lzma_encoder_optimum_normal.lo +0 -12
  571. package/deps/xz/src/liblzma/liblzma_la-lzma_encoder_optimum_normal.o +0 -0
  572. package/deps/xz/src/liblzma/liblzma_la-lzma_encoder_presets.lo +0 -12
  573. package/deps/xz/src/liblzma/liblzma_la-lzma_encoder_presets.o +0 -0
  574. package/deps/xz/src/liblzma/liblzma_la-outqueue.lo +0 -12
  575. package/deps/xz/src/liblzma/liblzma_la-outqueue.o +0 -0
  576. package/deps/xz/src/liblzma/liblzma_la-powerpc.lo +0 -12
  577. package/deps/xz/src/liblzma/liblzma_la-powerpc.o +0 -0
  578. package/deps/xz/src/liblzma/liblzma_la-price_table.lo +0 -12
  579. package/deps/xz/src/liblzma/liblzma_la-price_table.o +0 -0
  580. package/deps/xz/src/liblzma/liblzma_la-sha256.lo +0 -12
  581. package/deps/xz/src/liblzma/liblzma_la-sha256.o +0 -0
  582. package/deps/xz/src/liblzma/liblzma_la-simple_coder.lo +0 -12
  583. package/deps/xz/src/liblzma/liblzma_la-simple_coder.o +0 -0
  584. package/deps/xz/src/liblzma/liblzma_la-simple_decoder.lo +0 -12
  585. package/deps/xz/src/liblzma/liblzma_la-simple_decoder.o +0 -0
  586. package/deps/xz/src/liblzma/liblzma_la-simple_encoder.lo +0 -12
  587. package/deps/xz/src/liblzma/liblzma_la-simple_encoder.o +0 -0
  588. package/deps/xz/src/liblzma/liblzma_la-sparc.lo +0 -12
  589. package/deps/xz/src/liblzma/liblzma_la-sparc.o +0 -0
  590. package/deps/xz/src/liblzma/liblzma_la-stream_buffer_decoder.lo +0 -12
  591. package/deps/xz/src/liblzma/liblzma_la-stream_buffer_decoder.o +0 -0
  592. package/deps/xz/src/liblzma/liblzma_la-stream_buffer_encoder.lo +0 -12
  593. package/deps/xz/src/liblzma/liblzma_la-stream_buffer_encoder.o +0 -0
  594. package/deps/xz/src/liblzma/liblzma_la-stream_decoder.lo +0 -12
  595. package/deps/xz/src/liblzma/liblzma_la-stream_decoder.o +0 -0
  596. package/deps/xz/src/liblzma/liblzma_la-stream_encoder.lo +0 -12
  597. package/deps/xz/src/liblzma/liblzma_la-stream_encoder.o +0 -0
  598. package/deps/xz/src/liblzma/liblzma_la-stream_encoder_mt.lo +0 -12
  599. package/deps/xz/src/liblzma/liblzma_la-stream_encoder_mt.o +0 -0
  600. package/deps/xz/src/liblzma/liblzma_la-stream_flags_common.lo +0 -12
  601. package/deps/xz/src/liblzma/liblzma_la-stream_flags_common.o +0 -0
  602. package/deps/xz/src/liblzma/liblzma_la-stream_flags_decoder.lo +0 -12
  603. package/deps/xz/src/liblzma/liblzma_la-stream_flags_decoder.o +0 -0
  604. package/deps/xz/src/liblzma/liblzma_la-stream_flags_encoder.lo +0 -12
  605. package/deps/xz/src/liblzma/liblzma_la-stream_flags_encoder.o +0 -0
  606. package/deps/xz/src/liblzma/liblzma_la-tuklib_cpucores.lo +0 -12
  607. package/deps/xz/src/liblzma/liblzma_la-tuklib_cpucores.o +0 -0
  608. package/deps/xz/src/liblzma/liblzma_la-tuklib_physmem.lo +0 -12
  609. package/deps/xz/src/liblzma/liblzma_la-tuklib_physmem.o +0 -0
  610. package/deps/xz/src/liblzma/liblzma_la-vli_decoder.lo +0 -12
  611. package/deps/xz/src/liblzma/liblzma_la-vli_decoder.o +0 -0
  612. package/deps/xz/src/liblzma/liblzma_la-vli_encoder.lo +0 -12
  613. package/deps/xz/src/liblzma/liblzma_la-vli_encoder.o +0 -0
  614. package/deps/xz/src/liblzma/liblzma_la-vli_size.lo +0 -12
  615. package/deps/xz/src/liblzma/liblzma_la-vli_size.o +0 -0
  616. package/deps/xz/src/liblzma/liblzma_la-x86.lo +0 -12
  617. package/deps/xz/src/liblzma/liblzma_la-x86.o +0 -0
  618. package/deps/xz/src/liblzma/liblzma_w32res.rc +0 -12
  619. package/deps/xz/src/liblzma/lz/Makefile.inc +0 -22
  620. package/deps/xz/src/liblzma/lz/lz_decoder.c +0 -300
  621. package/deps/xz/src/liblzma/lz/lz_decoder.h +0 -235
  622. package/deps/xz/src/liblzma/lz/lz_encoder.c +0 -605
  623. package/deps/xz/src/liblzma/lz/lz_encoder.h +0 -328
  624. package/deps/xz/src/liblzma/lz/lz_encoder_hash.h +0 -108
  625. package/deps/xz/src/liblzma/lz/lz_encoder_hash_table.h +0 -68
  626. package/deps/xz/src/liblzma/lz/lz_encoder_mf.c +0 -744
  627. package/deps/xz/src/liblzma/lzma/Makefile.inc +0 -43
  628. package/deps/xz/src/liblzma/lzma/fastpos.h +0 -141
  629. package/deps/xz/src/liblzma/lzma/fastpos_table.c +0 -519
  630. package/deps/xz/src/liblzma/lzma/fastpos_tablegen.c +0 -56
  631. package/deps/xz/src/liblzma/lzma/lzma2_decoder.c +0 -304
  632. package/deps/xz/src/liblzma/lzma/lzma2_decoder.h +0 -29
  633. package/deps/xz/src/liblzma/lzma/lzma2_encoder.c +0 -403
  634. package/deps/xz/src/liblzma/lzma/lzma2_encoder.h +0 -43
  635. package/deps/xz/src/liblzma/lzma/lzma_common.h +0 -224
  636. package/deps/xz/src/liblzma/lzma/lzma_decoder.c +0 -1061
  637. package/deps/xz/src/liblzma/lzma/lzma_decoder.h +0 -53
  638. package/deps/xz/src/liblzma/lzma/lzma_encoder.c +0 -676
  639. package/deps/xz/src/liblzma/lzma/lzma_encoder.h +0 -55
  640. package/deps/xz/src/liblzma/lzma/lzma_encoder_optimum_fast.c +0 -169
  641. package/deps/xz/src/liblzma/lzma/lzma_encoder_optimum_normal.c +0 -854
  642. package/deps/xz/src/liblzma/lzma/lzma_encoder_presets.c +0 -63
  643. package/deps/xz/src/liblzma/lzma/lzma_encoder_private.h +0 -148
  644. package/deps/xz/src/liblzma/rangecoder/Makefile.inc +0 -21
  645. package/deps/xz/src/liblzma/rangecoder/price.h +0 -92
  646. package/deps/xz/src/liblzma/rangecoder/price_table.c +0 -22
  647. package/deps/xz/src/liblzma/rangecoder/price_tablegen.c +0 -87
  648. package/deps/xz/src/liblzma/rangecoder/range_common.h +0 -73
  649. package/deps/xz/src/liblzma/rangecoder/range_decoder.h +0 -185
  650. package/deps/xz/src/liblzma/rangecoder/range_encoder.h +0 -231
  651. package/deps/xz/src/liblzma/simple/Makefile.inc +0 -47
  652. package/deps/xz/src/liblzma/simple/arm.c +0 -71
  653. package/deps/xz/src/liblzma/simple/armthumb.c +0 -76
  654. package/deps/xz/src/liblzma/simple/ia64.c +0 -112
  655. package/deps/xz/src/liblzma/simple/powerpc.c +0 -75
  656. package/deps/xz/src/liblzma/simple/simple_coder.c +0 -277
  657. package/deps/xz/src/liblzma/simple/simple_coder.h +0 -72
  658. package/deps/xz/src/liblzma/simple/simple_decoder.c +0 -40
  659. package/deps/xz/src/liblzma/simple/simple_decoder.h +0 -22
  660. package/deps/xz/src/liblzma/simple/simple_encoder.c +0 -38
  661. package/deps/xz/src/liblzma/simple/simple_encoder.h +0 -23
  662. package/deps/xz/src/liblzma/simple/simple_private.h +0 -76
  663. package/deps/xz/src/liblzma/simple/sparc.c +0 -83
  664. package/deps/xz/src/liblzma/simple/x86.c +0 -156
  665. package/deps/xz/src/liblzma/validate_map.sh +0 -68
  666. package/deps/xz/src/lzmainfo/.deps/lzmainfo-lzmainfo.Po +0 -1
  667. package/deps/xz/src/lzmainfo/.deps/lzmainfo-tuklib_exit.Po +0 -1
  668. package/deps/xz/src/lzmainfo/.deps/lzmainfo-tuklib_progname.Po +0 -1
  669. package/deps/xz/src/lzmainfo/Makefile +0 -802
  670. package/deps/xz/src/lzmainfo/Makefile.am +0 -39
  671. package/deps/xz/src/lzmainfo/Makefile.in +0 -802
  672. package/deps/xz/src/lzmainfo/lzmainfo.1 +0 -60
  673. package/deps/xz/src/lzmainfo/lzmainfo.c +0 -219
  674. package/deps/xz/src/lzmainfo/lzmainfo_w32res.rc +0 -12
  675. package/deps/xz/src/scripts/Makefile +0 -642
  676. package/deps/xz/src/scripts/Makefile.am +0 -55
  677. package/deps/xz/src/scripts/Makefile.in +0 -642
  678. package/deps/xz/src/scripts/xzdiff +0 -200
  679. package/deps/xz/src/scripts/xzdiff.1 +0 -77
  680. package/deps/xz/src/scripts/xzdiff.in +0 -200
  681. package/deps/xz/src/scripts/xzgrep +0 -215
  682. package/deps/xz/src/scripts/xzgrep.1 +0 -98
  683. package/deps/xz/src/scripts/xzgrep.in +0 -215
  684. package/deps/xz/src/scripts/xzless +0 -58
  685. package/deps/xz/src/scripts/xzless.1 +0 -69
  686. package/deps/xz/src/scripts/xzless.in +0 -58
  687. package/deps/xz/src/scripts/xzmore +0 -78
  688. package/deps/xz/src/scripts/xzmore.1 +0 -55
  689. package/deps/xz/src/scripts/xzmore.in +0 -78
  690. package/deps/xz/src/xz/.deps/xz-args.Po +0 -1
  691. package/deps/xz/src/xz/.deps/xz-coder.Po +0 -1
  692. package/deps/xz/src/xz/.deps/xz-file_io.Po +0 -1
  693. package/deps/xz/src/xz/.deps/xz-hardware.Po +0 -1
  694. package/deps/xz/src/xz/.deps/xz-list.Po +0 -1
  695. package/deps/xz/src/xz/.deps/xz-main.Po +0 -1
  696. package/deps/xz/src/xz/.deps/xz-message.Po +0 -1
  697. package/deps/xz/src/xz/.deps/xz-mytime.Po +0 -1
  698. package/deps/xz/src/xz/.deps/xz-options.Po +0 -1
  699. package/deps/xz/src/xz/.deps/xz-signals.Po +0 -1
  700. package/deps/xz/src/xz/.deps/xz-suffix.Po +0 -1
  701. package/deps/xz/src/xz/.deps/xz-tuklib_exit.Po +0 -1
  702. package/deps/xz/src/xz/.deps/xz-tuklib_mbstr_fw.Po +0 -1
  703. package/deps/xz/src/xz/.deps/xz-tuklib_mbstr_width.Po +0 -1
  704. package/deps/xz/src/xz/.deps/xz-tuklib_open_stdxxx.Po +0 -1
  705. package/deps/xz/src/xz/.deps/xz-tuklib_progname.Po +0 -1
  706. package/deps/xz/src/xz/.deps/xz-util.Po +0 -1
  707. package/deps/xz/src/xz/Makefile +0 -1066
  708. package/deps/xz/src/xz/Makefile.am +0 -107
  709. package/deps/xz/src/xz/Makefile.in +0 -1066
  710. package/deps/xz/src/xz/args.c +0 -684
  711. package/deps/xz/src/xz/args.h +0 -44
  712. package/deps/xz/src/xz/coder.c +0 -919
  713. package/deps/xz/src/xz/coder.h +0 -76
  714. package/deps/xz/src/xz/file_io.c +0 -1184
  715. package/deps/xz/src/xz/file_io.h +0 -150
  716. package/deps/xz/src/xz/hardware.c +0 -150
  717. package/deps/xz/src/xz/hardware.h +0 -37
  718. package/deps/xz/src/xz/list.c +0 -1186
  719. package/deps/xz/src/xz/list.h +0 -18
  720. package/deps/xz/src/xz/main.c +0 -307
  721. package/deps/xz/src/xz/main.h +0 -30
  722. package/deps/xz/src/xz/message.c +0 -1258
  723. package/deps/xz/src/xz/message.h +0 -167
  724. package/deps/xz/src/xz/mytime.c +0 -89
  725. package/deps/xz/src/xz/mytime.h +0 -47
  726. package/deps/xz/src/xz/options.c +0 -363
  727. package/deps/xz/src/xz/options.h +0 -31
  728. package/deps/xz/src/xz/private.h +0 -59
  729. package/deps/xz/src/xz/signals.c +0 -209
  730. package/deps/xz/src/xz/signals.h +0 -43
  731. package/deps/xz/src/xz/suffix.c +0 -399
  732. package/deps/xz/src/xz/suffix.h +0 -28
  733. package/deps/xz/src/xz/util.c +0 -288
  734. package/deps/xz/src/xz/util.h +0 -123
  735. package/deps/xz/src/xz/xz.1 +0 -2786
  736. package/deps/xz/src/xz/xz_w32res.rc +0 -12
  737. package/deps/xz/src/xzdec/.deps/lzmadec-tuklib_exit.Po +0 -1
  738. package/deps/xz/src/xzdec/.deps/lzmadec-tuklib_progname.Po +0 -1
  739. package/deps/xz/src/xzdec/.deps/lzmadec-xzdec.Po +0 -1
  740. package/deps/xz/src/xzdec/.deps/xzdec-tuklib_exit.Po +0 -1
  741. package/deps/xz/src/xzdec/.deps/xzdec-tuklib_progname.Po +0 -1
  742. package/deps/xz/src/xzdec/.deps/xzdec-xzdec.Po +0 -1
  743. package/deps/xz/src/xzdec/Makefile +0 -901
  744. package/deps/xz/src/xzdec/Makefile.am +0 -82
  745. package/deps/xz/src/xzdec/Makefile.in +0 -901
  746. package/deps/xz/src/xzdec/lzmadec_w32res.rc +0 -12
  747. package/deps/xz/src/xzdec/xzdec.1 +0 -146
  748. package/deps/xz/src/xzdec/xzdec.c +0 -323
  749. package/deps/xz/src/xzdec/xzdec_w32res.rc +0 -12
  750. package/deps/xz/stamp-h1 +0 -1
  751. package/deps/xz/tests/.deps/create_compress_files.Po +0 -1
  752. package/deps/xz/tests/.deps/test_bcj_exact_size.Po +0 -1
  753. package/deps/xz/tests/.deps/test_block_header.Po +0 -1
  754. package/deps/xz/tests/.deps/test_check.Po +0 -1
  755. package/deps/xz/tests/.deps/test_filter_flags.Po +0 -1
  756. package/deps/xz/tests/.deps/test_index.Po +0 -1
  757. package/deps/xz/tests/.deps/test_stream_flags.Po +0 -1
  758. package/deps/xz/tests/Makefile +0 -832
  759. package/deps/xz/tests/Makefile.am +0 -57
  760. package/deps/xz/tests/Makefile.in +0 -832
  761. package/deps/xz/tests/bcj_test.c +0 -65
  762. package/deps/xz/tests/compress_prepared_bcj_sparc +0 -0
  763. package/deps/xz/tests/compress_prepared_bcj_x86 +0 -0
  764. package/deps/xz/tests/create_compress_files.c +0 -158
  765. package/deps/xz/tests/files/README +0 -240
  766. package/deps/xz/tests/files/bad-0-backward_size.xz +0 -0
  767. package/deps/xz/tests/files/bad-0-empty-truncated.xz +0 -0
  768. package/deps/xz/tests/files/bad-0-footer_magic.xz +0 -0
  769. package/deps/xz/tests/files/bad-0-header_magic.xz +0 -0
  770. package/deps/xz/tests/files/bad-0-nonempty_index.xz +0 -0
  771. package/deps/xz/tests/files/bad-0cat-alone.xz +0 -0
  772. package/deps/xz/tests/files/bad-0cat-header_magic.xz +0 -0
  773. package/deps/xz/tests/files/bad-0catpad-empty.xz +0 -0
  774. package/deps/xz/tests/files/bad-0pad-empty.xz +0 -0
  775. package/deps/xz/tests/files/bad-1-block_header-1.xz +0 -0
  776. package/deps/xz/tests/files/bad-1-block_header-2.xz +0 -0
  777. package/deps/xz/tests/files/bad-1-block_header-3.xz +0 -0
  778. package/deps/xz/tests/files/bad-1-block_header-4.xz +0 -0
  779. package/deps/xz/tests/files/bad-1-block_header-5.xz +0 -0
  780. package/deps/xz/tests/files/bad-1-block_header-6.xz +0 -0
  781. package/deps/xz/tests/files/bad-1-check-crc32.xz +0 -0
  782. package/deps/xz/tests/files/bad-1-check-crc64.xz +0 -0
  783. package/deps/xz/tests/files/bad-1-check-sha256.xz +0 -0
  784. package/deps/xz/tests/files/bad-1-lzma2-1.xz +0 -0
  785. package/deps/xz/tests/files/bad-1-lzma2-2.xz +0 -0
  786. package/deps/xz/tests/files/bad-1-lzma2-3.xz +0 -0
  787. package/deps/xz/tests/files/bad-1-lzma2-4.xz +0 -0
  788. package/deps/xz/tests/files/bad-1-lzma2-5.xz +0 -0
  789. package/deps/xz/tests/files/bad-1-lzma2-6.xz +0 -0
  790. package/deps/xz/tests/files/bad-1-lzma2-7.xz +0 -0
  791. package/deps/xz/tests/files/bad-1-lzma2-8.xz +0 -0
  792. package/deps/xz/tests/files/bad-1-stream_flags-1.xz +0 -0
  793. package/deps/xz/tests/files/bad-1-stream_flags-2.xz +0 -0
  794. package/deps/xz/tests/files/bad-1-stream_flags-3.xz +0 -0
  795. package/deps/xz/tests/files/bad-1-vli-1.xz +0 -0
  796. package/deps/xz/tests/files/bad-1-vli-2.xz +0 -0
  797. package/deps/xz/tests/files/bad-2-compressed_data_padding.xz +0 -0
  798. package/deps/xz/tests/files/bad-2-index-1.xz +0 -0
  799. package/deps/xz/tests/files/bad-2-index-2.xz +0 -0
  800. package/deps/xz/tests/files/bad-2-index-3.xz +0 -0
  801. package/deps/xz/tests/files/bad-2-index-4.xz +0 -0
  802. package/deps/xz/tests/files/bad-2-index-5.xz +0 -0
  803. package/deps/xz/tests/files/good-0-empty.xz +0 -0
  804. package/deps/xz/tests/files/good-0cat-empty.xz +0 -0
  805. package/deps/xz/tests/files/good-0catpad-empty.xz +0 -0
  806. package/deps/xz/tests/files/good-0pad-empty.xz +0 -0
  807. package/deps/xz/tests/files/good-1-3delta-lzma2.xz +0 -0
  808. package/deps/xz/tests/files/good-1-block_header-1.xz +0 -0
  809. package/deps/xz/tests/files/good-1-block_header-2.xz +0 -0
  810. package/deps/xz/tests/files/good-1-block_header-3.xz +0 -0
  811. package/deps/xz/tests/files/good-1-check-crc32.xz +0 -0
  812. package/deps/xz/tests/files/good-1-check-crc64.xz +0 -0
  813. package/deps/xz/tests/files/good-1-check-none.xz +0 -0
  814. package/deps/xz/tests/files/good-1-check-sha256.xz +0 -0
  815. package/deps/xz/tests/files/good-1-delta-lzma2.tiff.xz +0 -0
  816. package/deps/xz/tests/files/good-1-lzma2-1.xz +0 -0
  817. package/deps/xz/tests/files/good-1-lzma2-2.xz +0 -0
  818. package/deps/xz/tests/files/good-1-lzma2-3.xz +0 -0
  819. package/deps/xz/tests/files/good-1-lzma2-4.xz +0 -0
  820. package/deps/xz/tests/files/good-1-lzma2-5.xz +0 -0
  821. package/deps/xz/tests/files/good-1-sparc-lzma2.xz +0 -0
  822. package/deps/xz/tests/files/good-1-x86-lzma2.xz +0 -0
  823. package/deps/xz/tests/files/good-2-lzma2.xz +0 -0
  824. package/deps/xz/tests/files/unsupported-block_header.xz +0 -0
  825. package/deps/xz/tests/files/unsupported-check.xz +0 -0
  826. package/deps/xz/tests/files/unsupported-filter_flags-1.xz +0 -0
  827. package/deps/xz/tests/files/unsupported-filter_flags-2.xz +0 -0
  828. package/deps/xz/tests/files/unsupported-filter_flags-3.xz +0 -0
  829. package/deps/xz/tests/test_bcj_exact_size.c +0 -113
  830. package/deps/xz/tests/test_block_header.c +0 -240
  831. package/deps/xz/tests/test_check.c +0 -83
  832. package/deps/xz/tests/test_compress.sh +0 -142
  833. package/deps/xz/tests/test_files.sh +0 -57
  834. package/deps/xz/tests/test_filter_flags.c +0 -258
  835. package/deps/xz/tests/test_index.c +0 -659
  836. package/deps/xz/tests/test_scripts.sh +0 -76
  837. package/deps/xz/tests/test_stream_flags.c +0 -180
  838. package/deps/xz/tests/tests.h +0 -124
  839. package/deps/xz/tests/xzgrep_expected_output +0 -39
  840. package/deps/xz/windows/INSTALL-MSVC.txt +0 -47
  841. package/deps/xz/windows/INSTALL-MinGW.txt +0 -138
  842. package/deps/xz/windows/README-Windows.txt +0 -122
  843. package/deps/xz/windows/build.bash +0 -203
  844. package/deps/xz/windows/config.h +0 -142
  845. package/deps/xz/windows/liblzma.vcxproj +0 -354
  846. package/deps/xz/windows/liblzma_dll.vcxproj +0 -383
  847. package/deps/xz/windows/xz_win.sln +0 -48
  848. package/node_modules/node-pre-gyp/CHANGELOG.md +0 -319
  849. package/node_modules/node-pre-gyp/LICENSE +0 -27
  850. package/node_modules/node-pre-gyp/README.md +0 -570
  851. package/node_modules/node-pre-gyp/appveyor.yml +0 -30
  852. package/node_modules/node-pre-gyp/bin/node-pre-gyp +0 -131
  853. package/node_modules/node-pre-gyp/bin/node-pre-gyp.cmd +0 -2
  854. package/node_modules/node-pre-gyp/lib/build.js +0 -43
  855. package/node_modules/node-pre-gyp/lib/clean.js +0 -23
  856. package/node_modules/node-pre-gyp/lib/configure.js +0 -48
  857. package/node_modules/node-pre-gyp/lib/info.js +0 -40
  858. package/node_modules/node-pre-gyp/lib/install.js +0 -215
  859. package/node_modules/node-pre-gyp/lib/node-pre-gyp.js +0 -192
  860. package/node_modules/node-pre-gyp/lib/package.js +0 -46
  861. package/node_modules/node-pre-gyp/lib/pre-binding.js +0 -25
  862. package/node_modules/node-pre-gyp/lib/publish.js +0 -77
  863. package/node_modules/node-pre-gyp/lib/rebuild.js +0 -13
  864. package/node_modules/node-pre-gyp/lib/reinstall.js +0 -13
  865. package/node_modules/node-pre-gyp/lib/reveal.js +0 -31
  866. package/node_modules/node-pre-gyp/lib/testbinary.js +0 -73
  867. package/node_modules/node-pre-gyp/lib/testpackage.js +0 -49
  868. package/node_modules/node-pre-gyp/lib/unpublish.js +0 -41
  869. package/node_modules/node-pre-gyp/lib/util/abi_crosswalk.json +0 -1222
  870. package/node_modules/node-pre-gyp/lib/util/compile.js +0 -87
  871. package/node_modules/node-pre-gyp/lib/util/handle_gyp_opts.js +0 -94
  872. package/node_modules/node-pre-gyp/lib/util/nw-pre-gyp/index.html +0 -26
  873. package/node_modules/node-pre-gyp/lib/util/nw-pre-gyp/package.json +0 -9
  874. package/node_modules/node-pre-gyp/lib/util/s3_setup.js +0 -27
  875. package/node_modules/node-pre-gyp/lib/util/versioning.js +0 -308
  876. package/node_modules/node-pre-gyp/package.json +0 -136
  877. package/src/bindings/module.cpp +0 -107
  878. package/src/bindings/node-liblzma.cpp +0 -320
  879. package/src/bindings/node-liblzma.hpp +0 -115
  880. package/src/lzma.coffee +0 -339
@@ -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
- }