react-native-update 7.4.0-beta.0 → 7.4.2

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 (750) hide show
  1. package/android/src/main/java/cn/reactnative/modules/update/SafeZipFile.java +34 -5
  2. package/android/src/main/java/cn/reactnative/modules/update/UpdateContext.java +2 -3
  3. package/android/src/main/java/cn/reactnative/modules/update/UpdateModule.java +1 -1
  4. package/ios/RCTPushy/RCTPushy.m +1 -1
  5. package/lib/main.js +25 -27
  6. package/package.json +2 -2
  7. package/android/jni/HDiffPatch/CHANGELOG.md +0 -153
  8. package/android/jni/HDiffPatch/LICENSE +0 -48
  9. package/android/jni/HDiffPatch/Makefile +0 -157
  10. package/android/jni/HDiffPatch/README.md +0 -307
  11. package/android/jni/HDiffPatch/_atosize.h +0 -83
  12. package/android/jni/HDiffPatch/_clock_for_demo.h +0 -47
  13. package/android/jni/HDiffPatch/_dir_ignore.h +0 -191
  14. package/android/jni/HDiffPatch/builds/android_ndk_jni_mk/Android.mk +0 -37
  15. package/android/jni/HDiffPatch/builds/android_ndk_jni_mk/Application.mk +0 -7
  16. package/android/jni/HDiffPatch/builds/android_ndk_jni_mk/build_libs.bat +0 -1
  17. package/android/jni/HDiffPatch/builds/android_ndk_jni_mk/build_libs.sh +0 -1
  18. package/android/jni/HDiffPatch/builds/android_ndk_jni_mk/hpatch.c +0 -18
  19. package/android/jni/HDiffPatch/builds/android_ndk_jni_mk/hpatch.h +0 -20
  20. package/android/jni/HDiffPatch/builds/android_ndk_jni_mk/hpatch_jni.c +0 -28
  21. package/android/jni/HDiffPatch/builds/android_ndk_jni_mk/java/com/github/sisong/HPatch.java +0 -8
  22. package/android/jni/HDiffPatch/builds/codeblocks/HDiffPatch.workspace +0 -8
  23. package/android/jni/HDiffPatch/builds/codeblocks/HDiffZ.cbp +0 -219
  24. package/android/jni/HDiffPatch/builds/codeblocks/HPatchZ.cbp +0 -156
  25. package/android/jni/HDiffPatch/builds/codeblocks/unitTest.cbp +0 -65
  26. package/android/jni/HDiffPatch/builds/vc/HDiffPatch.sln +0 -105
  27. package/android/jni/HDiffPatch/builds/vc/HDiffZ.vcxproj +0 -237
  28. package/android/jni/HDiffPatch/builds/vc/HDiffZ.vcxproj.user +0 -3
  29. package/android/jni/HDiffPatch/builds/vc/HPatchZ.vcxproj +0 -318
  30. package/android/jni/HDiffPatch/builds/vc/HPatchZ.vcxproj.user +0 -3
  31. package/android/jni/HDiffPatch/builds/vc/unitTest.vcxproj +0 -182
  32. package/android/jni/HDiffPatch/builds/vc/unitTest.vcxproj.user +0 -3
  33. package/android/jni/HDiffPatch/builds/xcode/HDiffPatch.xcworkspace/contents.xcworkspacedata +0 -30
  34. package/android/jni/HDiffPatch/builds/xcode/HDiffPatch.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
  35. package/android/jni/HDiffPatch/builds/xcode/bestParams.xcodeproj/project.pbxproj +0 -408
  36. package/android/jni/HDiffPatch/builds/xcode/hdiffz.xcodeproj/project.pbxproj +0 -573
  37. package/android/jni/HDiffPatch/builds/xcode/hpatchz.xcodeproj/project.pbxproj +0 -396
  38. package/android/jni/HDiffPatch/builds/xcode/lz4.xcodeproj/project.pbxproj +0 -268
  39. package/android/jni/HDiffPatch/builds/xcode/lzma.xcodeproj/project.pbxproj +0 -361
  40. package/android/jni/HDiffPatch/builds/xcode/testHashClash.xcodeproj/project.pbxproj +0 -301
  41. package/android/jni/HDiffPatch/builds/xcode/unitTest.xcodeproj/project.pbxproj +0 -411
  42. package/android/jni/HDiffPatch/builds/xcode/zstd.xcodeproj/project.pbxproj +0 -504
  43. package/android/jni/HDiffPatch/checksum_plugin_demo.h +0 -344
  44. package/android/jni/HDiffPatch/compress_parallel.cpp +0 -166
  45. package/android/jni/HDiffPatch/compress_parallel.h +0 -59
  46. package/android/jni/HDiffPatch/compress_plugin_demo.h +0 -1152
  47. package/android/jni/HDiffPatch/decompress_plugin_demo.h +0 -995
  48. package/android/jni/HDiffPatch/dirDiffPatch/dir_diff/dir_diff.cpp +0 -797
  49. package/android/jni/HDiffPatch/dirDiffPatch/dir_diff/dir_diff.h +0 -65
  50. package/android/jni/HDiffPatch/dirDiffPatch/dir_diff/dir_diff_tools.cpp +0 -200
  51. package/android/jni/HDiffPatch/dirDiffPatch/dir_diff/dir_diff_tools.h +0 -178
  52. package/android/jni/HDiffPatch/dirDiffPatch/dir_diff/dir_manifest.cpp +0 -357
  53. package/android/jni/HDiffPatch/dirDiffPatch/dir_diff/dir_manifest.h +0 -87
  54. package/android/jni/HDiffPatch/dirDiffPatch/dir_diff/file_for_dirDiff.h +0 -151
  55. package/android/jni/HDiffPatch/dirDiffPatch/dir_patch/dir_patch.c +0 -770
  56. package/android/jni/HDiffPatch/dirDiffPatch/dir_patch/dir_patch.h +0 -236
  57. package/android/jni/HDiffPatch/dirDiffPatch/dir_patch/dir_patch_private.h +0 -47
  58. package/android/jni/HDiffPatch/dirDiffPatch/dir_patch/dir_patch_tools.c +0 -112
  59. package/android/jni/HDiffPatch/dirDiffPatch/dir_patch/dir_patch_tools.h +0 -53
  60. package/android/jni/HDiffPatch/dirDiffPatch/dir_patch/dir_patch_types.h +0 -61
  61. package/android/jni/HDiffPatch/dirDiffPatch/dir_patch/new_dir_output.c +0 -331
  62. package/android/jni/HDiffPatch/dirDiffPatch/dir_patch/new_dir_output.h +0 -144
  63. package/android/jni/HDiffPatch/dirDiffPatch/dir_patch/new_stream.c +0 -176
  64. package/android/jni/HDiffPatch/dirDiffPatch/dir_patch/new_stream.h +0 -84
  65. package/android/jni/HDiffPatch/dirDiffPatch/dir_patch/ref_stream.c +0 -146
  66. package/android/jni/HDiffPatch/dirDiffPatch/dir_patch/ref_stream.h +0 -61
  67. package/android/jni/HDiffPatch/dirDiffPatch/dir_patch/res_handle_limit.c +0 -152
  68. package/android/jni/HDiffPatch/dirDiffPatch/dir_patch/res_handle_limit.h +0 -76
  69. package/android/jni/HDiffPatch/file_for_patch.c +0 -524
  70. package/android/jni/HDiffPatch/file_for_patch.h +0 -259
  71. package/android/jni/HDiffPatch/hdiffz.cpp +0 -1570
  72. package/android/jni/HDiffPatch/hpatch_dir_listener.h +0 -290
  73. package/android/jni/HDiffPatch/hpatchz.c +0 -1221
  74. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/diff.cpp +0 -1025
  75. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/diff.h +0 -116
  76. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/diff_types.h +0 -72
  77. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/bytes_rle.cpp +0 -213
  78. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/bytes_rle.h +0 -63
  79. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/compress_detect.cpp +0 -170
  80. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/compress_detect.h +0 -86
  81. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/config.h +0 -89
  82. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/divsufsort.c +0 -13
  83. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/divsufsort.c.inc.h +0 -398
  84. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/divsufsort.h +0 -194
  85. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/divsufsort64.c +0 -13
  86. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/divsufsort64.h +0 -204
  87. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/divsufsort_private.h +0 -207
  88. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/sssort.c.inc.h +0 -815
  89. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/trsort.c.inc.h +0 -586
  90. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/utils.c.inc.h +0 -381
  91. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/limit_mem_diff/adler_roll.c +0 -352
  92. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/limit_mem_diff/adler_roll.h +0 -137
  93. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/limit_mem_diff/bloom_filter.h +0 -137
  94. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/limit_mem_diff/covers.h +0 -70
  95. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/limit_mem_diff/digest_matcher.cpp +0 -628
  96. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/limit_mem_diff/digest_matcher.h +0 -87
  97. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/limit_mem_diff/stream_serialize.cpp +0 -363
  98. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/limit_mem_diff/stream_serialize.h +0 -139
  99. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/mem_buf.h +0 -68
  100. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/pack_uint.h +0 -115
  101. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/suffix_string.cpp +0 -342
  102. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/suffix_string.h +0 -94
  103. package/android/jni/HDiffPatch/libHDiffPatch/HPatch/checksum_plugin.h +0 -52
  104. package/android/jni/HDiffPatch/libHDiffPatch/HPatch/patch.c +0 -2292
  105. package/android/jni/HDiffPatch/libHDiffPatch/HPatch/patch.h +0 -215
  106. package/android/jni/HDiffPatch/libHDiffPatch/HPatch/patch_private.h +0 -165
  107. package/android/jni/HDiffPatch/libHDiffPatch/HPatch/patch_types.h +0 -251
  108. package/android/jni/HDiffPatch/libParallel/parallel_channel.cpp +0 -174
  109. package/android/jni/HDiffPatch/libParallel/parallel_channel.h +0 -73
  110. package/android/jni/HDiffPatch/libParallel/parallel_import.cpp +0 -367
  111. package/android/jni/HDiffPatch/libParallel/parallel_import.h +0 -92
  112. package/android/jni/HDiffPatch/test/_private_searchBestParams.cpp +0 -301
  113. package/android/jni/HDiffPatch/test/hpatchz_test.cpp +0 -292
  114. package/android/jni/HDiffPatch/test/testHashClash.cpp +0 -436
  115. package/android/jni/HDiffPatch/test/unit_test.cpp +0 -417
  116. package/android/jni/lzma/Asm/arm/7zCrcOpt.asm +0 -100
  117. package/android/jni/lzma/Asm/x86/7zAsm.asm +0 -147
  118. package/android/jni/lzma/Asm/x86/7zCrcOpt.asm +0 -147
  119. package/android/jni/lzma/Asm/x86/AesOpt.asm +0 -237
  120. package/android/jni/lzma/Asm/x86/LzmaDecOpt.asm +0 -1258
  121. package/android/jni/lzma/Asm/x86/XzCrc64Opt.asm +0 -205
  122. package/android/jni/lzma/C/7z.h +0 -202
  123. package/android/jni/lzma/C/7zAlloc.c +0 -80
  124. package/android/jni/lzma/C/7zAlloc.h +0 -19
  125. package/android/jni/lzma/C/7zArcIn.c +0 -1771
  126. package/android/jni/lzma/C/7zBuf.c +0 -36
  127. package/android/jni/lzma/C/7zBuf.h +0 -35
  128. package/android/jni/lzma/C/7zBuf2.c +0 -52
  129. package/android/jni/lzma/C/7zCrc.c +0 -128
  130. package/android/jni/lzma/C/7zCrc.h +0 -25
  131. package/android/jni/lzma/C/7zCrcOpt.c +0 -115
  132. package/android/jni/lzma/C/7zDec.c +0 -591
  133. package/android/jni/lzma/C/7zFile.c +0 -286
  134. package/android/jni/lzma/C/7zFile.h +0 -83
  135. package/android/jni/lzma/C/7zStream.c +0 -176
  136. package/android/jni/lzma/C/7zTypes.h +0 -375
  137. package/android/jni/lzma/C/7zVersion.h +0 -27
  138. package/android/jni/lzma/C/7zVersion.rc +0 -55
  139. package/android/jni/lzma/C/Aes.c +0 -306
  140. package/android/jni/lzma/C/Aes.h +0 -38
  141. package/android/jni/lzma/C/AesOpt.c +0 -184
  142. package/android/jni/lzma/C/Alloc.c +0 -455
  143. package/android/jni/lzma/C/Alloc.h +0 -51
  144. package/android/jni/lzma/C/Bcj2.c +0 -257
  145. package/android/jni/lzma/C/Bcj2.h +0 -146
  146. package/android/jni/lzma/C/Bcj2Enc.c +0 -311
  147. package/android/jni/lzma/C/Bra.c +0 -230
  148. package/android/jni/lzma/C/Bra.h +0 -64
  149. package/android/jni/lzma/C/Bra86.c +0 -82
  150. package/android/jni/lzma/C/BraIA64.c +0 -53
  151. package/android/jni/lzma/C/Compiler.h +0 -33
  152. package/android/jni/lzma/C/CpuArch.c +0 -218
  153. package/android/jni/lzma/C/CpuArch.h +0 -336
  154. package/android/jni/lzma/C/Delta.c +0 -64
  155. package/android/jni/lzma/C/Delta.h +0 -19
  156. package/android/jni/lzma/C/DllSecur.c +0 -108
  157. package/android/jni/lzma/C/DllSecur.h +0 -20
  158. package/android/jni/lzma/C/LzFind.c +0 -1127
  159. package/android/jni/lzma/C/LzFind.h +0 -121
  160. package/android/jni/lzma/C/LzFindMt.c +0 -853
  161. package/android/jni/lzma/C/LzFindMt.h +0 -101
  162. package/android/jni/lzma/C/LzHash.h +0 -57
  163. package/android/jni/lzma/C/Lzma2Dec.c +0 -488
  164. package/android/jni/lzma/C/Lzma2Dec.h +0 -120
  165. package/android/jni/lzma/C/Lzma2DecMt.c +0 -1082
  166. package/android/jni/lzma/C/Lzma2DecMt.h +0 -79
  167. package/android/jni/lzma/C/Lzma2Enc.c +0 -803
  168. package/android/jni/lzma/C/Lzma2Enc.h +0 -55
  169. package/android/jni/lzma/C/Lzma86.h +0 -111
  170. package/android/jni/lzma/C/Lzma86Dec.c +0 -54
  171. package/android/jni/lzma/C/Lzma86Enc.c +0 -106
  172. package/android/jni/lzma/C/LzmaDec.c +0 -1185
  173. package/android/jni/lzma/C/LzmaDec.h +0 -234
  174. package/android/jni/lzma/C/LzmaEnc.c +0 -2976
  175. package/android/jni/lzma/C/LzmaEnc.h +0 -76
  176. package/android/jni/lzma/C/LzmaLib.c +0 -40
  177. package/android/jni/lzma/C/LzmaLib.h +0 -131
  178. package/android/jni/lzma/C/MtCoder.c +0 -601
  179. package/android/jni/lzma/C/MtCoder.h +0 -141
  180. package/android/jni/lzma/C/MtDec.c +0 -1138
  181. package/android/jni/lzma/C/MtDec.h +0 -201
  182. package/android/jni/lzma/C/Ppmd.h +0 -85
  183. package/android/jni/lzma/C/Ppmd7.c +0 -712
  184. package/android/jni/lzma/C/Ppmd7.h +0 -142
  185. package/android/jni/lzma/C/Ppmd7Dec.c +0 -191
  186. package/android/jni/lzma/C/Ppmd7Enc.c +0 -187
  187. package/android/jni/lzma/C/Precomp.h +0 -10
  188. package/android/jni/lzma/C/RotateDefs.h +0 -30
  189. package/android/jni/lzma/C/Sha256.c +0 -248
  190. package/android/jni/lzma/C/Sha256.h +0 -26
  191. package/android/jni/lzma/C/Sort.c +0 -141
  192. package/android/jni/lzma/C/Sort.h +0 -18
  193. package/android/jni/lzma/C/Threads.c +0 -95
  194. package/android/jni/lzma/C/Threads.h +0 -70
  195. package/android/jni/lzma/C/ThreadsP.c +0 -396
  196. package/android/jni/lzma/C/ThreadsP.h +0 -31
  197. package/android/jni/lzma/C/Util/7z/7z.dsp +0 -241
  198. package/android/jni/lzma/C/Util/7z/7z.dsw +0 -29
  199. package/android/jni/lzma/C/Util/7z/7zMain.c +0 -686
  200. package/android/jni/lzma/C/Util/7z/Precomp.c +0 -4
  201. package/android/jni/lzma/C/Util/7z/Precomp.h +0 -10
  202. package/android/jni/lzma/C/Util/7z/makefile +0 -40
  203. package/android/jni/lzma/C/Util/7z/makefile.gcc +0 -75
  204. package/android/jni/lzma/C/Util/Lzma/LzmaUtil.c +0 -258
  205. package/android/jni/lzma/C/Util/Lzma/LzmaUtil.dsp +0 -168
  206. package/android/jni/lzma/C/Util/Lzma/LzmaUtil.dsw +0 -29
  207. package/android/jni/lzma/C/Util/Lzma/makefile +0 -28
  208. package/android/jni/lzma/C/Util/Lzma/makefile.gcc +0 -44
  209. package/android/jni/lzma/C/Util/LzmaLib/LzmaLib.def +0 -4
  210. package/android/jni/lzma/C/Util/LzmaLib/LzmaLib.dsp +0 -178
  211. package/android/jni/lzma/C/Util/LzmaLib/LzmaLib.dsw +0 -29
  212. package/android/jni/lzma/C/Util/LzmaLib/LzmaLibExports.c +0 -14
  213. package/android/jni/lzma/C/Util/LzmaLib/makefile +0 -34
  214. package/android/jni/lzma/C/Util/LzmaLib/resource.rc +0 -3
  215. package/android/jni/lzma/C/Util/SfxSetup/Precomp.c +0 -4
  216. package/android/jni/lzma/C/Util/SfxSetup/Precomp.h +0 -10
  217. package/android/jni/lzma/C/Util/SfxSetup/SfxSetup.c +0 -640
  218. package/android/jni/lzma/C/Util/SfxSetup/SfxSetup.dsp +0 -231
  219. package/android/jni/lzma/C/Util/SfxSetup/SfxSetup.dsw +0 -29
  220. package/android/jni/lzma/C/Util/SfxSetup/makefile +0 -37
  221. package/android/jni/lzma/C/Util/SfxSetup/makefile_con +0 -38
  222. package/android/jni/lzma/C/Util/SfxSetup/resource.rc +0 -5
  223. package/android/jni/lzma/C/Util/SfxSetup/setup.ico +0 -0
  224. package/android/jni/lzma/C/Xz.c +0 -90
  225. package/android/jni/lzma/C/Xz.h +0 -460
  226. package/android/jni/lzma/C/XzCrc64.c +0 -86
  227. package/android/jni/lzma/C/XzCrc64.h +0 -26
  228. package/android/jni/lzma/C/XzCrc64Opt.c +0 -69
  229. package/android/jni/lzma/C/XzDec.c +0 -2766
  230. package/android/jni/lzma/C/XzEnc.c +0 -1329
  231. package/android/jni/lzma/C/XzEnc.h +0 -60
  232. package/android/jni/lzma/C/XzIn.c +0 -319
  233. package/android/jni/lzma/CPP/7zip/7zip.mak +0 -240
  234. package/android/jni/lzma/CPP/7zip/Aes.mak +0 -7
  235. package/android/jni/lzma/CPP/7zip/Archive/7z/7zCompressionMode.cpp +0 -3
  236. package/android/jni/lzma/CPP/7zip/Archive/7z/7zCompressionMode.h +0 -76
  237. package/android/jni/lzma/CPP/7zip/Archive/7z/7zDecode.cpp +0 -569
  238. package/android/jni/lzma/CPP/7zip/Archive/7z/7zDecode.h +0 -70
  239. package/android/jni/lzma/CPP/7zip/Archive/7z/7zEncode.cpp +0 -678
  240. package/android/jni/lzma/CPP/7zip/Archive/7z/7zEncode.h +0 -92
  241. package/android/jni/lzma/CPP/7zip/Archive/7z/7zExtract.cpp +0 -423
  242. package/android/jni/lzma/CPP/7zip/Archive/7z/7zFolderInStream.cpp +0 -139
  243. package/android/jni/lzma/CPP/7zip/Archive/7z/7zFolderInStream.h +0 -61
  244. package/android/jni/lzma/CPP/7zip/Archive/7z/7zHandler.cpp +0 -763
  245. package/android/jni/lzma/CPP/7zip/Archive/7z/7zHandler.h +0 -181
  246. package/android/jni/lzma/CPP/7zip/Archive/7z/7zHandlerOut.cpp +0 -942
  247. package/android/jni/lzma/CPP/7zip/Archive/7z/7zHeader.cpp +0 -19
  248. package/android/jni/lzma/CPP/7zip/Archive/7z/7zHeader.h +0 -148
  249. package/android/jni/lzma/CPP/7zip/Archive/7z/7zIn.cpp +0 -1666
  250. package/android/jni/lzma/CPP/7zip/Archive/7z/7zIn.h +0 -445
  251. package/android/jni/lzma/CPP/7zip/Archive/7z/7zItem.h +0 -202
  252. package/android/jni/lzma/CPP/7zip/Archive/7z/7zOut.cpp +0 -901
  253. package/android/jni/lzma/CPP/7zip/Archive/7z/7zOut.h +0 -335
  254. package/android/jni/lzma/CPP/7zip/Archive/7z/7zProperties.cpp +0 -174
  255. package/android/jni/lzma/CPP/7zip/Archive/7z/7zProperties.h +0 -22
  256. package/android/jni/lzma/CPP/7zip/Archive/7z/7zRegister.cpp +0 -21
  257. package/android/jni/lzma/CPP/7zip/Archive/7z/7zSpecStream.cpp +0 -22
  258. package/android/jni/lzma/CPP/7zip/Archive/7z/7zSpecStream.h +0 -35
  259. package/android/jni/lzma/CPP/7zip/Archive/7z/7zUpdate.cpp +0 -2500
  260. package/android/jni/lzma/CPP/7zip/Archive/7z/7zUpdate.h +0 -139
  261. package/android/jni/lzma/CPP/7zip/Archive/7z/StdAfx.cpp +0 -3
  262. package/android/jni/lzma/CPP/7zip/Archive/7z/StdAfx.h +0 -8
  263. package/android/jni/lzma/CPP/7zip/Archive/Archive.def +0 -12
  264. package/android/jni/lzma/CPP/7zip/Archive/Archive2.def +0 -19
  265. package/android/jni/lzma/CPP/7zip/Archive/ArchiveExports.cpp +0 -151
  266. package/android/jni/lzma/CPP/7zip/Archive/Common/CoderMixer2.cpp +0 -1125
  267. package/android/jni/lzma/CPP/7zip/Archive/Common/CoderMixer2.h +0 -447
  268. package/android/jni/lzma/CPP/7zip/Archive/Common/DummyOutStream.cpp +0 -17
  269. package/android/jni/lzma/CPP/7zip/Archive/Common/DummyOutStream.h +0 -25
  270. package/android/jni/lzma/CPP/7zip/Archive/Common/HandlerOut.cpp +0 -232
  271. package/android/jni/lzma/CPP/7zip/Archive/Common/HandlerOut.h +0 -110
  272. package/android/jni/lzma/CPP/7zip/Archive/Common/InStreamWithCRC.cpp +0 -46
  273. package/android/jni/lzma/CPP/7zip/Archive/Common/InStreamWithCRC.h +0 -67
  274. package/android/jni/lzma/CPP/7zip/Archive/Common/ItemNameUtils.cpp +0 -88
  275. package/android/jni/lzma/CPP/7zip/Archive/Common/ItemNameUtils.h +0 -28
  276. package/android/jni/lzma/CPP/7zip/Archive/Common/MultiStream.cpp +0 -191
  277. package/android/jni/lzma/CPP/7zip/Archive/Common/MultiStream.h +0 -89
  278. package/android/jni/lzma/CPP/7zip/Archive/Common/OutStreamWithCRC.cpp +0 -18
  279. package/android/jni/lzma/CPP/7zip/Archive/Common/OutStreamWithCRC.h +0 -37
  280. package/android/jni/lzma/CPP/7zip/Archive/Common/ParseProperties.cpp +0 -3
  281. package/android/jni/lzma/CPP/7zip/Archive/Common/ParseProperties.h +0 -6
  282. package/android/jni/lzma/CPP/7zip/Archive/Common/StdAfx.h +0 -8
  283. package/android/jni/lzma/CPP/7zip/Archive/DllExports2.cpp +0 -122
  284. package/android/jni/lzma/CPP/7zip/Archive/IArchive.h +0 -608
  285. package/android/jni/lzma/CPP/7zip/Archive/Icons/7z.ico +0 -0
  286. package/android/jni/lzma/CPP/7zip/Archive/LzmaHandler.cpp +0 -629
  287. package/android/jni/lzma/CPP/7zip/Archive/SplitHandler.cpp +0 -359
  288. package/android/jni/lzma/CPP/7zip/Archive/StdAfx.h +0 -8
  289. package/android/jni/lzma/CPP/7zip/Archive/XzHandler.cpp +0 -1308
  290. package/android/jni/lzma/CPP/7zip/Archive/XzHandler.h +0 -11
  291. package/android/jni/lzma/CPP/7zip/Asm.mak +0 -9
  292. package/android/jni/lzma/CPP/7zip/Bundles/Alone7z/Alone.dsp +0 -1910
  293. package/android/jni/lzma/CPP/7zip/Bundles/Alone7z/Alone.dsw +0 -29
  294. package/android/jni/lzma/CPP/7zip/Bundles/Alone7z/StdAfx.cpp +0 -3
  295. package/android/jni/lzma/CPP/7zip/Bundles/Alone7z/StdAfx.h +0 -8
  296. package/android/jni/lzma/CPP/7zip/Bundles/Alone7z/makefile +0 -154
  297. package/android/jni/lzma/CPP/7zip/Bundles/Alone7z/resource.rc +0 -7
  298. package/android/jni/lzma/CPP/7zip/Bundles/Format7zExtractR/StdAfx.cpp +0 -3
  299. package/android/jni/lzma/CPP/7zip/Bundles/Format7zExtractR/StdAfx.h +0 -8
  300. package/android/jni/lzma/CPP/7zip/Bundles/Format7zExtractR/makefile +0 -96
  301. package/android/jni/lzma/CPP/7zip/Bundles/Format7zExtractR/resource.rc +0 -5
  302. package/android/jni/lzma/CPP/7zip/Bundles/Format7zR/StdAfx.cpp +0 -3
  303. package/android/jni/lzma/CPP/7zip/Bundles/Format7zR/StdAfx.h +0 -8
  304. package/android/jni/lzma/CPP/7zip/Bundles/Format7zR/makefile +0 -116
  305. package/android/jni/lzma/CPP/7zip/Bundles/Format7zR/resource.rc +0 -5
  306. package/android/jni/lzma/CPP/7zip/Bundles/LzmaCon/LzmaAlone.cpp +0 -799
  307. package/android/jni/lzma/CPP/7zip/Bundles/LzmaCon/LzmaCon.dsp +0 -477
  308. package/android/jni/lzma/CPP/7zip/Bundles/LzmaCon/LzmaCon.dsw +0 -29
  309. package/android/jni/lzma/CPP/7zip/Bundles/LzmaCon/StdAfx.cpp +0 -3
  310. package/android/jni/lzma/CPP/7zip/Bundles/LzmaCon/StdAfx.h +0 -8
  311. package/android/jni/lzma/CPP/7zip/Bundles/LzmaCon/makefile +0 -59
  312. package/android/jni/lzma/CPP/7zip/Bundles/LzmaCon/makefile.gcc +0 -195
  313. package/android/jni/lzma/CPP/7zip/Bundles/LzmaCon/resource.rc +0 -3
  314. package/android/jni/lzma/CPP/7zip/Bundles/LzmaSpec/LzmaSpec.cpp +0 -715
  315. package/android/jni/lzma/CPP/7zip/Bundles/SFXCon/7z.ico +0 -0
  316. package/android/jni/lzma/CPP/7zip/Bundles/SFXCon/SFXCon.dsp +0 -912
  317. package/android/jni/lzma/CPP/7zip/Bundles/SFXCon/SFXCon.dsw +0 -29
  318. package/android/jni/lzma/CPP/7zip/Bundles/SFXCon/SfxCon.cpp +0 -482
  319. package/android/jni/lzma/CPP/7zip/Bundles/SFXCon/StdAfx.cpp +0 -3
  320. package/android/jni/lzma/CPP/7zip/Bundles/SFXCon/StdAfx.h +0 -8
  321. package/android/jni/lzma/CPP/7zip/Bundles/SFXCon/makefile +0 -134
  322. package/android/jni/lzma/CPP/7zip/Bundles/SFXCon/resource.rc +0 -5
  323. package/android/jni/lzma/CPP/7zip/Bundles/SFXSetup/ExtractCallbackSfx.cpp +0 -246
  324. package/android/jni/lzma/CPP/7zip/Bundles/SFXSetup/ExtractCallbackSfx.h +0 -86
  325. package/android/jni/lzma/CPP/7zip/Bundles/SFXSetup/ExtractEngine.cpp +0 -137
  326. package/android/jni/lzma/CPP/7zip/Bundles/SFXSetup/ExtractEngine.h +0 -11
  327. package/android/jni/lzma/CPP/7zip/Bundles/SFXSetup/SFXSetup.dsp +0 -803
  328. package/android/jni/lzma/CPP/7zip/Bundles/SFXSetup/SFXSetup.dsw +0 -29
  329. package/android/jni/lzma/CPP/7zip/Bundles/SFXSetup/SfxSetup.cpp +0 -364
  330. package/android/jni/lzma/CPP/7zip/Bundles/SFXSetup/StdAfx.cpp +0 -3
  331. package/android/jni/lzma/CPP/7zip/Bundles/SFXSetup/StdAfx.h +0 -13
  332. package/android/jni/lzma/CPP/7zip/Bundles/SFXSetup/makefile +0 -117
  333. package/android/jni/lzma/CPP/7zip/Bundles/SFXSetup/resource.h +0 -6
  334. package/android/jni/lzma/CPP/7zip/Bundles/SFXSetup/resource.rc +0 -16
  335. package/android/jni/lzma/CPP/7zip/Bundles/SFXSetup/setup.ico +0 -0
  336. package/android/jni/lzma/CPP/7zip/Bundles/SFXWin/7z.ico +0 -0
  337. package/android/jni/lzma/CPP/7zip/Bundles/SFXWin/SFXWin.dsp +0 -988
  338. package/android/jni/lzma/CPP/7zip/Bundles/SFXWin/SFXWin.dsw +0 -29
  339. package/android/jni/lzma/CPP/7zip/Bundles/SFXWin/SfxWin.cpp +0 -241
  340. package/android/jni/lzma/CPP/7zip/Bundles/SFXWin/StdAfx.cpp +0 -3
  341. package/android/jni/lzma/CPP/7zip/Bundles/SFXWin/StdAfx.h +0 -14
  342. package/android/jni/lzma/CPP/7zip/Bundles/SFXWin/makefile +0 -153
  343. package/android/jni/lzma/CPP/7zip/Bundles/SFXWin/resource.h +0 -1
  344. package/android/jni/lzma/CPP/7zip/Bundles/SFXWin/resource.rc +0 -50
  345. package/android/jni/lzma/CPP/7zip/Common/CWrappers.cpp +0 -250
  346. package/android/jni/lzma/CPP/7zip/Common/CWrappers.h +0 -120
  347. package/android/jni/lzma/CPP/7zip/Common/CreateCoder.cpp +0 -536
  348. package/android/jni/lzma/CPP/7zip/Common/CreateCoder.h +0 -192
  349. package/android/jni/lzma/CPP/7zip/Common/FilePathAutoRename.cpp +0 -46
  350. package/android/jni/lzma/CPP/7zip/Common/FilePathAutoRename.h +0 -10
  351. package/android/jni/lzma/CPP/7zip/Common/FileStreams.cpp +0 -475
  352. package/android/jni/lzma/CPP/7zip/Common/FileStreams.h +0 -166
  353. package/android/jni/lzma/CPP/7zip/Common/FilterCoder.cpp +0 -435
  354. package/android/jni/lzma/CPP/7zip/Common/FilterCoder.h +0 -205
  355. package/android/jni/lzma/CPP/7zip/Common/InBuffer.cpp +0 -163
  356. package/android/jni/lzma/CPP/7zip/Common/InBuffer.h +0 -92
  357. package/android/jni/lzma/CPP/7zip/Common/InOutTempBuffer.cpp +0 -127
  358. package/android/jni/lzma/CPP/7zip/Common/InOutTempBuffer.h +0 -48
  359. package/android/jni/lzma/CPP/7zip/Common/LimitedStreams.cpp +0 -367
  360. package/android/jni/lzma/CPP/7zip/Common/LimitedStreams.h +0 -252
  361. package/android/jni/lzma/CPP/7zip/Common/LockedStream.cpp +0 -3
  362. package/android/jni/lzma/CPP/7zip/Common/LockedStream.h +0 -6
  363. package/android/jni/lzma/CPP/7zip/Common/MethodId.cpp +0 -3
  364. package/android/jni/lzma/CPP/7zip/Common/MethodId.h +0 -10
  365. package/android/jni/lzma/CPP/7zip/Common/MethodProps.cpp +0 -509
  366. package/android/jni/lzma/CPP/7zip/Common/MethodProps.h +0 -264
  367. package/android/jni/lzma/CPP/7zip/Common/OffsetStream.cpp +0 -39
  368. package/android/jni/lzma/CPP/7zip/Common/OffsetStream.h +0 -26
  369. package/android/jni/lzma/CPP/7zip/Common/OutBuffer.cpp +0 -111
  370. package/android/jni/lzma/CPP/7zip/Common/OutBuffer.h +0 -66
  371. package/android/jni/lzma/CPP/7zip/Common/ProgressUtils.cpp +0 -51
  372. package/android/jni/lzma/CPP/7zip/Common/ProgressUtils.h +0 -35
  373. package/android/jni/lzma/CPP/7zip/Common/PropId.cpp +0 -108
  374. package/android/jni/lzma/CPP/7zip/Common/RegisterArc.h +0 -78
  375. package/android/jni/lzma/CPP/7zip/Common/RegisterCodec.h +0 -106
  376. package/android/jni/lzma/CPP/7zip/Common/StdAfx.h +0 -8
  377. package/android/jni/lzma/CPP/7zip/Common/StreamBinder.cpp +0 -156
  378. package/android/jni/lzma/CPP/7zip/Common/StreamBinder.h +0 -60
  379. package/android/jni/lzma/CPP/7zip/Common/StreamObjects.cpp +0 -285
  380. package/android/jni/lzma/CPP/7zip/Common/StreamObjects.h +0 -157
  381. package/android/jni/lzma/CPP/7zip/Common/StreamUtils.cpp +0 -56
  382. package/android/jni/lzma/CPP/7zip/Common/StreamUtils.h +0 -13
  383. package/android/jni/lzma/CPP/7zip/Common/UniqBlocks.cpp +0 -57
  384. package/android/jni/lzma/CPP/7zip/Common/UniqBlocks.h +0 -26
  385. package/android/jni/lzma/CPP/7zip/Common/VirtThread.cpp +0 -48
  386. package/android/jni/lzma/CPP/7zip/Common/VirtThread.h +0 -24
  387. package/android/jni/lzma/CPP/7zip/Compress/Bcj2Coder.cpp +0 -666
  388. package/android/jni/lzma/CPP/7zip/Compress/Bcj2Coder.h +0 -120
  389. package/android/jni/lzma/CPP/7zip/Compress/Bcj2Register.cpp +0 -24
  390. package/android/jni/lzma/CPP/7zip/Compress/BcjCoder.cpp +0 -24
  391. package/android/jni/lzma/CPP/7zip/Compress/BcjCoder.h +0 -31
  392. package/android/jni/lzma/CPP/7zip/Compress/BcjRegister.cpp +0 -17
  393. package/android/jni/lzma/CPP/7zip/Compress/BranchMisc.cpp +0 -23
  394. package/android/jni/lzma/CPP/7zip/Compress/BranchMisc.h +0 -35
  395. package/android/jni/lzma/CPP/7zip/Compress/BranchRegister.cpp +0 -41
  396. package/android/jni/lzma/CPP/7zip/Compress/ByteSwap.cpp +0 -92
  397. package/android/jni/lzma/CPP/7zip/Compress/CodecExports.cpp +0 -344
  398. package/android/jni/lzma/CPP/7zip/Compress/CopyCoder.cpp +0 -120
  399. package/android/jni/lzma/CPP/7zip/Compress/CopyCoder.h +0 -49
  400. package/android/jni/lzma/CPP/7zip/Compress/CopyRegister.cpp +0 -15
  401. package/android/jni/lzma/CPP/7zip/Compress/DeltaFilter.cpp +0 -128
  402. package/android/jni/lzma/CPP/7zip/Compress/Lzma2Decoder.cpp +0 -265
  403. package/android/jni/lzma/CPP/7zip/Compress/Lzma2Decoder.h +0 -96
  404. package/android/jni/lzma/CPP/7zip/Compress/Lzma2Encoder.cpp +0 -122
  405. package/android/jni/lzma/CPP/7zip/Compress/Lzma2Encoder.h +0 -42
  406. package/android/jni/lzma/CPP/7zip/Compress/Lzma2Register.cpp +0 -22
  407. package/android/jni/lzma/CPP/7zip/Compress/LzmaDecoder.cpp +0 -343
  408. package/android/jni/lzma/CPP/7zip/Compress/LzmaDecoder.h +0 -113
  409. package/android/jni/lzma/CPP/7zip/Compress/LzmaEncoder.cpp +0 -182
  410. package/android/jni/lzma/CPP/7zip/Compress/LzmaEncoder.h +0 -46
  411. package/android/jni/lzma/CPP/7zip/Compress/LzmaRegister.cpp +0 -22
  412. package/android/jni/lzma/CPP/7zip/Compress/PpmdDecoder.cpp +0 -170
  413. package/android/jni/lzma/CPP/7zip/Compress/PpmdDecoder.h +0 -86
  414. package/android/jni/lzma/CPP/7zip/Compress/PpmdEncoder.cpp +0 -152
  415. package/android/jni/lzma/CPP/7zip/Compress/PpmdEncoder.h +0 -58
  416. package/android/jni/lzma/CPP/7zip/Compress/PpmdRegister.cpp +0 -22
  417. package/android/jni/lzma/CPP/7zip/Compress/StdAfx.h +0 -8
  418. package/android/jni/lzma/CPP/7zip/Compress/XzDecoder.cpp +0 -150
  419. package/android/jni/lzma/CPP/7zip/Compress/XzDecoder.h +0 -92
  420. package/android/jni/lzma/CPP/7zip/Compress/XzEncoder.cpp +0 -245
  421. package/android/jni/lzma/CPP/7zip/Compress/XzEncoder.h +0 -46
  422. package/android/jni/lzma/CPP/7zip/Crc.mak +0 -8
  423. package/android/jni/lzma/CPP/7zip/Crc64.mak +0 -8
  424. package/android/jni/lzma/CPP/7zip/Crypto/7zAes.cpp +0 -280
  425. package/android/jni/lzma/CPP/7zip/Crypto/7zAes.h +0 -118
  426. package/android/jni/lzma/CPP/7zip/Crypto/7zAesRegister.cpp +0 -17
  427. package/android/jni/lzma/CPP/7zip/Crypto/MyAes.cpp +0 -112
  428. package/android/jni/lzma/CPP/7zip/Crypto/MyAes.h +0 -57
  429. package/android/jni/lzma/CPP/7zip/Crypto/MyAesReg.cpp +0 -16
  430. package/android/jni/lzma/CPP/7zip/Crypto/RandGen.cpp +0 -233
  431. package/android/jni/lzma/CPP/7zip/Crypto/RandGen.h +0 -40
  432. package/android/jni/lzma/CPP/7zip/Crypto/StdAfx.h +0 -8
  433. package/android/jni/lzma/CPP/7zip/GuiCommon.rc +0 -84
  434. package/android/jni/lzma/CPP/7zip/Guid.txt +0 -220
  435. package/android/jni/lzma/CPP/7zip/ICoder.h +0 -399
  436. package/android/jni/lzma/CPP/7zip/IDecl.h +0 -28
  437. package/android/jni/lzma/CPP/7zip/IPassword.h +0 -23
  438. package/android/jni/lzma/CPP/7zip/IProgress.h +0 -19
  439. package/android/jni/lzma/CPP/7zip/IStream.h +0 -127
  440. package/android/jni/lzma/CPP/7zip/LzmaDec.mak +0 -5
  441. package/android/jni/lzma/CPP/7zip/MyVersion.h +0 -2
  442. package/android/jni/lzma/CPP/7zip/MyVersionInfo.rc +0 -2
  443. package/android/jni/lzma/CPP/7zip/PropID.h +0 -127
  444. package/android/jni/lzma/CPP/7zip/SubBuild.mak +0 -3
  445. package/android/jni/lzma/CPP/7zip/UI/Client7z/Client7z.cpp +0 -993
  446. package/android/jni/lzma/CPP/7zip/UI/Client7z/Client7z.dsp +0 -235
  447. package/android/jni/lzma/CPP/7zip/UI/Client7z/Client7z.dsw +0 -29
  448. package/android/jni/lzma/CPP/7zip/UI/Client7z/StdAfx.cpp +0 -3
  449. package/android/jni/lzma/CPP/7zip/UI/Client7z/StdAfx.h +0 -8
  450. package/android/jni/lzma/CPP/7zip/UI/Client7z/makefile +0 -28
  451. package/android/jni/lzma/CPP/7zip/UI/Client7z/resource.rc +0 -3
  452. package/android/jni/lzma/CPP/7zip/UI/Common/ArchiveCommandLine.cpp +0 -1295
  453. package/android/jni/lzma/CPP/7zip/UI/Common/ArchiveCommandLine.h +0 -136
  454. package/android/jni/lzma/CPP/7zip/UI/Common/ArchiveExtractCallback.cpp +0 -1715
  455. package/android/jni/lzma/CPP/7zip/UI/Common/ArchiveExtractCallback.h +0 -403
  456. package/android/jni/lzma/CPP/7zip/UI/Common/ArchiveName.cpp +0 -155
  457. package/android/jni/lzma/CPP/7zip/UI/Common/ArchiveName.h +0 -10
  458. package/android/jni/lzma/CPP/7zip/UI/Common/ArchiveOpenCallback.cpp +0 -161
  459. package/android/jni/lzma/CPP/7zip/UI/Common/ArchiveOpenCallback.h +0 -112
  460. package/android/jni/lzma/CPP/7zip/UI/Common/Bench.cpp +0 -3618
  461. package/android/jni/lzma/CPP/7zip/UI/Common/Bench.h +0 -77
  462. package/android/jni/lzma/CPP/7zip/UI/Common/DefaultName.cpp +0 -37
  463. package/android/jni/lzma/CPP/7zip/UI/Common/DefaultName.h +0 -11
  464. package/android/jni/lzma/CPP/7zip/UI/Common/DirItem.h +0 -190
  465. package/android/jni/lzma/CPP/7zip/UI/Common/EnumDirItems.cpp +0 -1096
  466. package/android/jni/lzma/CPP/7zip/UI/Common/EnumDirItems.h +0 -42
  467. package/android/jni/lzma/CPP/7zip/UI/Common/ExitCode.h +0 -27
  468. package/android/jni/lzma/CPP/7zip/UI/Common/Extract.cpp +0 -482
  469. package/android/jni/lzma/CPP/7zip/UI/Common/Extract.h +0 -94
  470. package/android/jni/lzma/CPP/7zip/UI/Common/ExtractMode.h +0 -34
  471. package/android/jni/lzma/CPP/7zip/UI/Common/ExtractingFilePath.cpp +0 -280
  472. package/android/jni/lzma/CPP/7zip/UI/Common/ExtractingFilePath.h +0 -31
  473. package/android/jni/lzma/CPP/7zip/UI/Common/HashCalc.cpp +0 -347
  474. package/android/jni/lzma/CPP/7zip/UI/Common/HashCalc.h +0 -110
  475. package/android/jni/lzma/CPP/7zip/UI/Common/IFileExtractCallback.h +0 -114
  476. package/android/jni/lzma/CPP/7zip/UI/Common/LoadCodecs.cpp +0 -1074
  477. package/android/jni/lzma/CPP/7zip/UI/Common/LoadCodecs.h +0 -424
  478. package/android/jni/lzma/CPP/7zip/UI/Common/OpenArchive.cpp +0 -3553
  479. package/android/jni/lzma/CPP/7zip/UI/Common/OpenArchive.h +0 -436
  480. package/android/jni/lzma/CPP/7zip/UI/Common/PropIDUtils.cpp +0 -668
  481. package/android/jni/lzma/CPP/7zip/UI/Common/PropIDUtils.h +0 -18
  482. package/android/jni/lzma/CPP/7zip/UI/Common/Property.h +0 -14
  483. package/android/jni/lzma/CPP/7zip/UI/Common/SetProperties.cpp +0 -80
  484. package/android/jni/lzma/CPP/7zip/UI/Common/SetProperties.h +0 -10
  485. package/android/jni/lzma/CPP/7zip/UI/Common/SortUtils.cpp +0 -25
  486. package/android/jni/lzma/CPP/7zip/UI/Common/SortUtils.h +0 -10
  487. package/android/jni/lzma/CPP/7zip/UI/Common/StdAfx.h +0 -8
  488. package/android/jni/lzma/CPP/7zip/UI/Common/TempFiles.cpp +0 -19
  489. package/android/jni/lzma/CPP/7zip/UI/Common/TempFiles.h +0 -16
  490. package/android/jni/lzma/CPP/7zip/UI/Common/Update.cpp +0 -1704
  491. package/android/jni/lzma/CPP/7zip/UI/Common/Update.h +0 -200
  492. package/android/jni/lzma/CPP/7zip/UI/Common/UpdateAction.cpp +0 -64
  493. package/android/jni/lzma/CPP/7zip/UI/Common/UpdateAction.h +0 -66
  494. package/android/jni/lzma/CPP/7zip/UI/Common/UpdateCallback.cpp +0 -771
  495. package/android/jni/lzma/CPP/7zip/UI/Common/UpdateCallback.h +0 -162
  496. package/android/jni/lzma/CPP/7zip/UI/Common/UpdatePair.cpp +0 -233
  497. package/android/jni/lzma/CPP/7zip/UI/Common/UpdatePair.h +0 -27
  498. package/android/jni/lzma/CPP/7zip/UI/Common/UpdateProduce.cpp +0 -70
  499. package/android/jni/lzma/CPP/7zip/UI/Common/UpdateProduce.h +0 -55
  500. package/android/jni/lzma/CPP/7zip/UI/Common/WorkDir.cpp +0 -94
  501. package/android/jni/lzma/CPP/7zip/UI/Common/WorkDir.h +0 -26
  502. package/android/jni/lzma/CPP/7zip/UI/Common/ZipRegistry.h +0 -130
  503. package/android/jni/lzma/CPP/7zip/UI/Console/BenchCon.cpp +0 -41
  504. package/android/jni/lzma/CPP/7zip/UI/Console/BenchCon.h +0 -14
  505. package/android/jni/lzma/CPP/7zip/UI/Console/Console.mak +0 -43
  506. package/android/jni/lzma/CPP/7zip/UI/Console/Console.manifest +0 -13
  507. package/android/jni/lzma/CPP/7zip/UI/Console/ConsoleClose.cpp +0 -69
  508. package/android/jni/lzma/CPP/7zip/UI/Console/ConsoleClose.h +0 -33
  509. package/android/jni/lzma/CPP/7zip/UI/Console/ExtractCallbackConsole.cpp +0 -825
  510. package/android/jni/lzma/CPP/7zip/UI/Console/ExtractCallbackConsole.h +0 -164
  511. package/android/jni/lzma/CPP/7zip/UI/Console/HashCon.cpp +0 -367
  512. package/android/jni/lzma/CPP/7zip/UI/Console/HashCon.h +0 -48
  513. package/android/jni/lzma/CPP/7zip/UI/Console/List.cpp +0 -1359
  514. package/android/jni/lzma/CPP/7zip/UI/Console/List.h +0 -27
  515. package/android/jni/lzma/CPP/7zip/UI/Console/Main.cpp +0 -1154
  516. package/android/jni/lzma/CPP/7zip/UI/Console/MainAr.cpp +0 -175
  517. package/android/jni/lzma/CPP/7zip/UI/Console/OpenCallbackConsole.cpp +0 -115
  518. package/android/jni/lzma/CPP/7zip/UI/Console/OpenCallbackConsole.h +0 -66
  519. package/android/jni/lzma/CPP/7zip/UI/Console/PercentPrinter.cpp +0 -183
  520. package/android/jni/lzma/CPP/7zip/UI/Console/PercentPrinter.h +0 -62
  521. package/android/jni/lzma/CPP/7zip/UI/Console/StdAfx.cpp +0 -3
  522. package/android/jni/lzma/CPP/7zip/UI/Console/StdAfx.h +0 -8
  523. package/android/jni/lzma/CPP/7zip/UI/Console/UpdateCallbackConsole.cpp +0 -702
  524. package/android/jni/lzma/CPP/7zip/UI/Console/UpdateCallbackConsole.h +0 -124
  525. package/android/jni/lzma/CPP/7zip/UI/Console/UserInputUtils.cpp +0 -110
  526. package/android/jni/lzma/CPP/7zip/UI/Console/UserInputUtils.h +0 -27
  527. package/android/jni/lzma/CPP/7zip/UI/Console/makefile +0 -64
  528. package/android/jni/lzma/CPP/7zip/UI/Console/resource.rc +0 -7
  529. package/android/jni/lzma/CPP/7zip/UI/Explorer/MyMessages.cpp +0 -37
  530. package/android/jni/lzma/CPP/7zip/UI/Explorer/MyMessages.h +0 -16
  531. package/android/jni/lzma/CPP/7zip/UI/FileManager/BrowseDialog.cpp +0 -1025
  532. package/android/jni/lzma/CPP/7zip/UI/FileManager/BrowseDialog.h +0 -21
  533. package/android/jni/lzma/CPP/7zip/UI/FileManager/BrowseDialogRes.h +0 -9
  534. package/android/jni/lzma/CPP/7zip/UI/FileManager/ComboDialog.cpp +0 -64
  535. package/android/jni/lzma/CPP/7zip/UI/FileManager/ComboDialog.h +0 -28
  536. package/android/jni/lzma/CPP/7zip/UI/FileManager/ComboDialogRes.h +0 -4
  537. package/android/jni/lzma/CPP/7zip/UI/FileManager/DialogSize.h +0 -16
  538. package/android/jni/lzma/CPP/7zip/UI/FileManager/ExtractCallback.cpp +0 -1037
  539. package/android/jni/lzma/CPP/7zip/UI/FileManager/ExtractCallback.h +0 -328
  540. package/android/jni/lzma/CPP/7zip/UI/FileManager/FormatUtils.cpp +0 -28
  541. package/android/jni/lzma/CPP/7zip/UI/FileManager/FormatUtils.h +0 -14
  542. package/android/jni/lzma/CPP/7zip/UI/FileManager/LangUtils.h +0 -40
  543. package/android/jni/lzma/CPP/7zip/UI/FileManager/MyWindowsNew.h +0 -76
  544. package/android/jni/lzma/CPP/7zip/UI/FileManager/OverwriteDialog.cpp +0 -122
  545. package/android/jni/lzma/CPP/7zip/UI/FileManager/OverwriteDialog.h +0 -69
  546. package/android/jni/lzma/CPP/7zip/UI/FileManager/OverwriteDialog.rc +0 -91
  547. package/android/jni/lzma/CPP/7zip/UI/FileManager/OverwriteDialogRes.h +0 -17
  548. package/android/jni/lzma/CPP/7zip/UI/FileManager/PasswordDialog.cpp +0 -58
  549. package/android/jni/lzma/CPP/7zip/UI/FileManager/PasswordDialog.h +0 -28
  550. package/android/jni/lzma/CPP/7zip/UI/FileManager/PasswordDialog.rc +0 -14
  551. package/android/jni/lzma/CPP/7zip/UI/FileManager/PasswordDialogRes.h +0 -5
  552. package/android/jni/lzma/CPP/7zip/UI/FileManager/ProgressDialog.cpp +0 -196
  553. package/android/jni/lzma/CPP/7zip/UI/FileManager/ProgressDialog.h +0 -170
  554. package/android/jni/lzma/CPP/7zip/UI/FileManager/ProgressDialog.rc +0 -12
  555. package/android/jni/lzma/CPP/7zip/UI/FileManager/ProgressDialog2.cpp +0 -1337
  556. package/android/jni/lzma/CPP/7zip/UI/FileManager/ProgressDialog2.h +0 -351
  557. package/android/jni/lzma/CPP/7zip/UI/FileManager/ProgressDialog2.rc +0 -40
  558. package/android/jni/lzma/CPP/7zip/UI/FileManager/ProgressDialog2Res.h +0 -48
  559. package/android/jni/lzma/CPP/7zip/UI/FileManager/ProgressDialog2a.rc +0 -80
  560. package/android/jni/lzma/CPP/7zip/UI/FileManager/ProgressDialogRes.h +0 -3
  561. package/android/jni/lzma/CPP/7zip/UI/FileManager/PropertyName.cpp +0 -23
  562. package/android/jni/lzma/CPP/7zip/UI/FileManager/PropertyName.h +0 -10
  563. package/android/jni/lzma/CPP/7zip/UI/FileManager/PropertyNameRes.h +0 -95
  564. package/android/jni/lzma/CPP/7zip/UI/FileManager/SysIconUtils.cpp +0 -255
  565. package/android/jni/lzma/CPP/7zip/UI/FileManager/SysIconUtils.h +0 -62
  566. package/android/jni/lzma/CPP/7zip/UI/FileManager/resource.h +0 -177
  567. package/android/jni/lzma/CPP/7zip/UI/FileManager/resourceGui.h +0 -15
  568. package/android/jni/lzma/CPP/7zip/UI/GUI/Extract.rc +0 -59
  569. package/android/jni/lzma/CPP/7zip/UI/GUI/ExtractDialog.cpp +0 -418
  570. package/android/jni/lzma/CPP/7zip/UI/GUI/ExtractDialog.h +0 -113
  571. package/android/jni/lzma/CPP/7zip/UI/GUI/ExtractDialog.rc +0 -98
  572. package/android/jni/lzma/CPP/7zip/UI/GUI/ExtractDialogRes.h +0 -24
  573. package/android/jni/lzma/CPP/7zip/UI/GUI/ExtractGUI.cpp +0 -280
  574. package/android/jni/lzma/CPP/7zip/UI/GUI/ExtractGUI.h +0 -38
  575. package/android/jni/lzma/CPP/7zip/UI/GUI/ExtractRes.h +0 -51
  576. package/android/jni/lzma/CPP/7zip/UI/GUI/HashGUI.h +0 -27
  577. package/android/jni/lzma/CPP/7zip/UI/GUI/resource2.h +0 -2
  578. package/android/jni/lzma/CPP/Build.mak +0 -156
  579. package/android/jni/lzma/CPP/Common/AutoPtr.h +0 -35
  580. package/android/jni/lzma/CPP/Common/CRC.cpp +0 -7
  581. package/android/jni/lzma/CPP/Common/C_FileIO.cpp +0 -92
  582. package/android/jni/lzma/CPP/Common/C_FileIO.h +0 -53
  583. package/android/jni/lzma/CPP/Common/ComTry.h +0 -21
  584. package/android/jni/lzma/CPP/Common/CommandLineParser.cpp +0 -197
  585. package/android/jni/lzma/CPP/Common/CommandLineParser.h +0 -63
  586. package/android/jni/lzma/CPP/Common/Common.h +0 -43
  587. package/android/jni/lzma/CPP/Common/CrcReg.cpp +0 -98
  588. package/android/jni/lzma/CPP/Common/Defs.h +0 -15
  589. package/android/jni/lzma/CPP/Common/DynamicBuffer.h +0 -64
  590. package/android/jni/lzma/CPP/Common/IntToString.cpp +0 -193
  591. package/android/jni/lzma/CPP/Common/IntToString.h +0 -28
  592. package/android/jni/lzma/CPP/Common/Lang.h +0 -23
  593. package/android/jni/lzma/CPP/Common/ListFileUtils.cpp +0 -132
  594. package/android/jni/lzma/CPP/Common/ListFileUtils.h +0 -18
  595. package/android/jni/lzma/CPP/Common/MyBuffer.h +0 -259
  596. package/android/jni/lzma/CPP/Common/MyBuffer2.h +0 -100
  597. package/android/jni/lzma/CPP/Common/MyCom.h +0 -277
  598. package/android/jni/lzma/CPP/Common/MyException.h +0 -14
  599. package/android/jni/lzma/CPP/Common/MyGuidDef.h +0 -54
  600. package/android/jni/lzma/CPP/Common/MyInitGuid.h +0 -45
  601. package/android/jni/lzma/CPP/Common/MyLinux.h +0 -42
  602. package/android/jni/lzma/CPP/Common/MyString.cpp +0 -1659
  603. package/android/jni/lzma/CPP/Common/MyString.h +0 -868
  604. package/android/jni/lzma/CPP/Common/MyTypes.h +0 -35
  605. package/android/jni/lzma/CPP/Common/MyUnknown.h +0 -17
  606. package/android/jni/lzma/CPP/Common/MyVector.cpp +0 -3
  607. package/android/jni/lzma/CPP/Common/MyVector.h +0 -634
  608. package/android/jni/lzma/CPP/Common/MyWindows.cpp +0 -145
  609. package/android/jni/lzma/CPP/Common/MyWindows.h +0 -231
  610. package/android/jni/lzma/CPP/Common/NewHandler.cpp +0 -163
  611. package/android/jni/lzma/CPP/Common/NewHandler.h +0 -88
  612. package/android/jni/lzma/CPP/Common/Sha256Reg.cpp +0 -40
  613. package/android/jni/lzma/CPP/Common/StdAfx.h +0 -8
  614. package/android/jni/lzma/CPP/Common/StdInStream.cpp +0 -89
  615. package/android/jni/lzma/CPP/Common/StdInStream.h +0 -38
  616. package/android/jni/lzma/CPP/Common/StdOutStream.cpp +0 -163
  617. package/android/jni/lzma/CPP/Common/StdOutStream.h +0 -71
  618. package/android/jni/lzma/CPP/Common/StringConvert.cpp +0 -319
  619. package/android/jni/lzma/CPP/Common/StringConvert.h +0 -88
  620. package/android/jni/lzma/CPP/Common/StringToInt.cpp +0 -144
  621. package/android/jni/lzma/CPP/Common/StringToInt.h +0 -21
  622. package/android/jni/lzma/CPP/Common/TextConfig.cpp +0 -124
  623. package/android/jni/lzma/CPP/Common/TextConfig.h +0 -19
  624. package/android/jni/lzma/CPP/Common/UTFConvert.cpp +0 -288
  625. package/android/jni/lzma/CPP/Common/UTFConvert.h +0 -12
  626. package/android/jni/lzma/CPP/Common/Wildcard.cpp +0 -676
  627. package/android/jni/lzma/CPP/Common/Wildcard.h +0 -149
  628. package/android/jni/lzma/CPP/Common/XzCrc64Init.cpp +0 -7
  629. package/android/jni/lzma/CPP/Common/XzCrc64Reg.cpp +0 -42
  630. package/android/jni/lzma/CPP/Windows/COM.h +0 -70
  631. package/android/jni/lzma/CPP/Windows/CommonDialog.cpp +0 -185
  632. package/android/jni/lzma/CPP/Windows/CommonDialog.h +0 -23
  633. package/android/jni/lzma/CPP/Windows/Control/ComboBox.cpp +0 -66
  634. package/android/jni/lzma/CPP/Windows/Control/ComboBox.h +0 -65
  635. package/android/jni/lzma/CPP/Windows/Control/CommandBar.h +0 -52
  636. package/android/jni/lzma/CPP/Windows/Control/Dialog.cpp +0 -251
  637. package/android/jni/lzma/CPP/Windows/Control/Dialog.h +0 -170
  638. package/android/jni/lzma/CPP/Windows/Control/Edit.h +0 -19
  639. package/android/jni/lzma/CPP/Windows/Control/ImageList.cpp +0 -10
  640. package/android/jni/lzma/CPP/Windows/Control/ImageList.h +0 -87
  641. package/android/jni/lzma/CPP/Windows/Control/ListView.cpp +0 -155
  642. package/android/jni/lzma/CPP/Windows/Control/ListView.h +0 -146
  643. package/android/jni/lzma/CPP/Windows/Control/ProgressBar.h +0 -35
  644. package/android/jni/lzma/CPP/Windows/Control/PropertyPage.cpp +0 -143
  645. package/android/jni/lzma/CPP/Windows/Control/PropertyPage.h +0 -50
  646. package/android/jni/lzma/CPP/Windows/Control/ReBar.h +0 -34
  647. package/android/jni/lzma/CPP/Windows/Control/Static.h +0 -28
  648. package/android/jni/lzma/CPP/Windows/Control/StatusBar.h +0 -42
  649. package/android/jni/lzma/CPP/Windows/Control/StdAfx.h +0 -8
  650. package/android/jni/lzma/CPP/Windows/Control/ToolBar.h +0 -43
  651. package/android/jni/lzma/CPP/Windows/Control/Trackbar.h +0 -27
  652. package/android/jni/lzma/CPP/Windows/Control/Window2.cpp +0 -200
  653. package/android/jni/lzma/CPP/Windows/Control/Window2.h +0 -51
  654. package/android/jni/lzma/CPP/Windows/DLL.cpp +0 -109
  655. package/android/jni/lzma/CPP/Windows/DLL.h +0 -58
  656. package/android/jni/lzma/CPP/Windows/Defs.h +0 -17
  657. package/android/jni/lzma/CPP/Windows/ErrorMsg.cpp +0 -66
  658. package/android/jni/lzma/CPP/Windows/ErrorMsg.h +0 -15
  659. package/android/jni/lzma/CPP/Windows/FileDir.cpp +0 -714
  660. package/android/jni/lzma/CPP/Windows/FileDir.h +0 -117
  661. package/android/jni/lzma/CPP/Windows/FileFind.cpp +0 -749
  662. package/android/jni/lzma/CPP/Windows/FileFind.h +0 -161
  663. package/android/jni/lzma/CPP/Windows/FileIO.cpp +0 -432
  664. package/android/jni/lzma/CPP/Windows/FileIO.h +0 -212
  665. package/android/jni/lzma/CPP/Windows/FileLink.cpp +0 -440
  666. package/android/jni/lzma/CPP/Windows/FileMapping.cpp +0 -12
  667. package/android/jni/lzma/CPP/Windows/FileMapping.h +0 -66
  668. package/android/jni/lzma/CPP/Windows/FileName.cpp +0 -839
  669. package/android/jni/lzma/CPP/Windows/FileName.h +0 -115
  670. package/android/jni/lzma/CPP/Windows/FileSystem.cpp +0 -131
  671. package/android/jni/lzma/CPP/Windows/FileSystem.h +0 -27
  672. package/android/jni/lzma/CPP/Windows/Handle.h +0 -37
  673. package/android/jni/lzma/CPP/Windows/MemoryLock.cpp +0 -112
  674. package/android/jni/lzma/CPP/Windows/MemoryLock.h +0 -40
  675. package/android/jni/lzma/CPP/Windows/NtCheck.h +0 -46
  676. package/android/jni/lzma/CPP/Windows/PropVariant.cpp +0 -347
  677. package/android/jni/lzma/CPP/Windows/PropVariant.h +0 -114
  678. package/android/jni/lzma/CPP/Windows/PropVariantConv.cpp +0 -138
  679. package/android/jni/lzma/CPP/Windows/PropVariantConv.h +0 -37
  680. package/android/jni/lzma/CPP/Windows/Registry.cpp +0 -390
  681. package/android/jni/lzma/CPP/Windows/Registry.h +0 -84
  682. package/android/jni/lzma/CPP/Windows/ResourceString.cpp +0 -103
  683. package/android/jni/lzma/CPP/Windows/ResourceString.h +0 -16
  684. package/android/jni/lzma/CPP/Windows/SecurityUtils.cpp +0 -181
  685. package/android/jni/lzma/CPP/Windows/SecurityUtils.h +0 -167
  686. package/android/jni/lzma/CPP/Windows/Shell.cpp +0 -358
  687. package/android/jni/lzma/CPP/Windows/Shell.h +0 -94
  688. package/android/jni/lzma/CPP/Windows/StdAfx.h +0 -8
  689. package/android/jni/lzma/CPP/Windows/Synchronization.cpp +0 -10
  690. package/android/jni/lzma/CPP/Windows/Synchronization.h +0 -164
  691. package/android/jni/lzma/CPP/Windows/System.cpp +0 -142
  692. package/android/jni/lzma/CPP/Windows/System.h +0 -40
  693. package/android/jni/lzma/CPP/Windows/Thread.h +0 -38
  694. package/android/jni/lzma/CPP/Windows/TimeUtils.cpp +0 -213
  695. package/android/jni/lzma/CPP/Windows/TimeUtils.h +0 -32
  696. package/android/jni/lzma/CPP/Windows/Window.cpp +0 -179
  697. package/android/jni/lzma/CPP/Windows/Window.h +0 -284
  698. package/android/jni/lzma/CS/7zip/Common/CRC.cs +0 -55
  699. package/android/jni/lzma/CS/7zip/Common/CommandLineParser.cs +0 -274
  700. package/android/jni/lzma/CS/7zip/Common/InBuffer.cs +0 -72
  701. package/android/jni/lzma/CS/7zip/Common/OutBuffer.cs +0 -47
  702. package/android/jni/lzma/CS/7zip/Compress/LZ/IMatchFinder.cs +0 -24
  703. package/android/jni/lzma/CS/7zip/Compress/LZ/LzBinTree.cs +0 -367
  704. package/android/jni/lzma/CS/7zip/Compress/LZ/LzInWindow.cs +0 -132
  705. package/android/jni/lzma/CS/7zip/Compress/LZ/LzOutWindow.cs +0 -110
  706. package/android/jni/lzma/CS/7zip/Compress/LZMA/LzmaBase.cs +0 -76
  707. package/android/jni/lzma/CS/7zip/Compress/LZMA/LzmaDecoder.cs +0 -398
  708. package/android/jni/lzma/CS/7zip/Compress/LZMA/LzmaEncoder.cs +0 -1480
  709. package/android/jni/lzma/CS/7zip/Compress/LzmaAlone/LzmaAlone.cs +0 -364
  710. package/android/jni/lzma/CS/7zip/Compress/LzmaAlone/LzmaAlone.csproj +0 -90
  711. package/android/jni/lzma/CS/7zip/Compress/LzmaAlone/LzmaAlone.sln +0 -20
  712. package/android/jni/lzma/CS/7zip/Compress/LzmaAlone/LzmaBench.cs +0 -340
  713. package/android/jni/lzma/CS/7zip/Compress/LzmaAlone/Properties/AssemblyInfo.cs +0 -29
  714. package/android/jni/lzma/CS/7zip/Compress/LzmaAlone/Properties/Resources.cs +0 -70
  715. package/android/jni/lzma/CS/7zip/Compress/LzmaAlone/Properties/Settings.cs +0 -42
  716. package/android/jni/lzma/CS/7zip/Compress/RangeCoder/RangeCoder.cs +0 -234
  717. package/android/jni/lzma/CS/7zip/Compress/RangeCoder/RangeCoderBit.cs +0 -117
  718. package/android/jni/lzma/CS/7zip/Compress/RangeCoder/RangeCoderBitTree.cs +0 -157
  719. package/android/jni/lzma/CS/7zip/ICoder.cs +0 -157
  720. package/android/jni/lzma/DOC/7zC.txt +0 -187
  721. package/android/jni/lzma/DOC/7zFormat.txt +0 -469
  722. package/android/jni/lzma/DOC/Methods.txt +0 -173
  723. package/android/jni/lzma/DOC/installer.txt +0 -166
  724. package/android/jni/lzma/DOC/lzma-history.txt +0 -446
  725. package/android/jni/lzma/DOC/lzma-sdk.txt +0 -357
  726. package/android/jni/lzma/DOC/lzma-specification.txt +0 -1176
  727. package/android/jni/lzma/DOC/lzma.txt +0 -328
  728. package/android/jni/lzma/Java/SevenZip/CRC.java +0 -52
  729. package/android/jni/lzma/Java/SevenZip/Compression/LZ/BinTree.java +0 -382
  730. package/android/jni/lzma/Java/SevenZip/Compression/LZ/InWindow.java +0 -131
  731. package/android/jni/lzma/Java/SevenZip/Compression/LZ/OutWindow.java +0 -85
  732. package/android/jni/lzma/Java/SevenZip/Compression/LZMA/Base.java +0 -88
  733. package/android/jni/lzma/Java/SevenZip/Compression/LZMA/Decoder.java +0 -329
  734. package/android/jni/lzma/Java/SevenZip/Compression/LZMA/Encoder.java +0 -1416
  735. package/android/jni/lzma/Java/SevenZip/Compression/RangeCoder/BitTreeDecoder.java +0 -55
  736. package/android/jni/lzma/Java/SevenZip/Compression/RangeCoder/BitTreeEncoder.java +0 -99
  737. package/android/jni/lzma/Java/SevenZip/Compression/RangeCoder/Decoder.java +0 -88
  738. package/android/jni/lzma/Java/SevenZip/Compression/RangeCoder/Encoder.java +0 -151
  739. package/android/jni/lzma/Java/SevenZip/ICodeProgress.java +0 -6
  740. package/android/jni/lzma/Java/SevenZip/LzmaAlone.java +0 -253
  741. package/android/jni/lzma/Java/SevenZip/LzmaBench.java +0 -392
  742. package/android/jni/lzma/bin/7zS2.sfx +0 -0
  743. package/android/jni/lzma/bin/7zS2con.sfx +0 -0
  744. package/android/jni/lzma/bin/7zSD.sfx +0 -0
  745. package/android/jni/lzma/bin/7zdec.exe +0 -0
  746. package/android/jni/lzma/bin/7zr.exe +0 -0
  747. package/android/jni/lzma/bin/installer/config.txt +0 -5
  748. package/android/jni/lzma/bin/installer/cr.bat +0 -5
  749. package/android/jni/lzma/bin/lzma.exe +0 -0
  750. package/android/jni/lzma/bin/x64/7zr.exe +0 -0
@@ -1,1025 +0,0 @@
1
- //diff.cpp
2
- //
3
- /*
4
- The MIT License (MIT)
5
- Copyright (c) 2012-2018 HouSisong
6
-
7
- Permission is hereby granted, free of charge, to any person
8
- obtaining a copy of this software and associated documentation
9
- files (the "Software"), to deal in the Software without
10
- restriction, including without limitation the rights to use,
11
- copy, modify, merge, publish, distribute, sublicense, and/or sell
12
- copies of the Software, and to permit persons to whom the
13
- Software is furnished to do so, subject to the following
14
- conditions:
15
-
16
- The above copyright notice and this permission notice shall be
17
- included in all copies or substantial portions of the Software.
18
-
19
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
20
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
21
- OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
22
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
23
- HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
24
- WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
25
- FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
26
- OTHER DEALINGS IN THE SOFTWARE.
27
- */
28
-
29
- #include "diff.h"
30
- #include <string.h> //strlen memcmp
31
- #include <stdio.h> //fprintf
32
- #include <algorithm> //std::max
33
- #include <vector>
34
- #include "private_diff/suffix_string.h"
35
- #include "private_diff/bytes_rle.h"
36
- #include "private_diff/compress_detect.h"
37
- #include "private_diff/pack_uint.h"
38
- #include "private_diff/mem_buf.h"
39
- #include "../HPatch/patch.h"
40
- #include "../HPatch/patch_private.h"
41
- #include "private_diff/limit_mem_diff/covers.h"
42
- #include "private_diff/limit_mem_diff/digest_matcher.h"
43
- #include "private_diff/limit_mem_diff/stream_serialize.h"
44
- using namespace hdiff_private;
45
-
46
- static void getCovers_by_stream(const hpatch_TStreamInput* newData,
47
- const hpatch_TStreamInput* oldData,
48
- size_t kMatchBlockSize,bool kIsSkipSameRange,
49
- TCovers& out_covers);
50
-
51
-
52
- static const char* kHDiffVersionType ="HDIFF13";
53
- static const char* kHDiffSFVersionType="HDIFFSF20";
54
-
55
- #define checki(value,info) { if (!(value)) { throw std::runtime_error(info); } }
56
- #define check(value) checki(value,"check "#value" error!")
57
-
58
- namespace{
59
-
60
- typedef unsigned char TByte;
61
- typedef size_t TUInt;
62
- typedef ptrdiff_t TInt;
63
- static const int kMaxLinkSpaceLength=(1<<9)-1; //跨覆盖线合并时,允许合并的最远距离.
64
-
65
- //覆盖线.
66
- struct TOldCover {
67
- TInt oldPos;
68
- TInt newPos;
69
- TInt length;
70
- inline TOldCover():oldPos(0),newPos(0),length(0) { }
71
- inline TOldCover(TInt _oldPos,TInt _newPos,TInt _length)
72
- :oldPos(_oldPos),newPos(_newPos),length(_length) { }
73
- inline TOldCover(const TOldCover& cover)
74
- :oldPos(cover.oldPos),newPos(cover.newPos),length(cover.length) { }
75
-
76
- inline bool isCanLink(const TOldCover& next)const{//覆盖线是否可以连接.
77
- return isCollinear(next)&&(linkSpaceLength(next)<=kMaxLinkSpaceLength);
78
- }
79
- inline bool isCollinear(const TOldCover& next)const{//覆盖线是否在同一条直线上.
80
- return (oldPos-next.oldPos==newPos-next.newPos);
81
- }
82
- inline TInt linkSpaceLength(const TOldCover& next)const{//覆盖线间的间距.
83
- return next.oldPos-(oldPos+length);
84
- }
85
- inline void Link(const TOldCover& next){//共线的2覆盖线合并链接.
86
- assert(isCollinear(next));
87
- assert(oldPos<=next.oldPos);
88
- length = (next.oldPos-oldPos)+next.length;
89
- }
90
- };
91
-
92
-
93
- struct TDiffData{
94
- const TByte* newData;
95
- const TByte* newData_end;
96
- const TByte* oldData;
97
- const TByte* oldData_end;
98
- std::vector<TOldCover> covers; //选出的覆盖线.
99
- std::vector<TByte> newDataDiff; //集中储存newData中没有被覆盖线覆盖住的字节数据.
100
- std::vector<TByte> newDataSubDiff; //newData中的每个数值减去对应的cover线条的oldData数值和newDataDiff的数值.
101
- };
102
-
103
-
104
- //查找相等的字符串长度.
105
- static TInt getEqualLength(const TByte* x,const TByte* x_end,
106
- const TByte* y,const TByte* y_end){
107
- const TInt xLen=(TInt)(x_end-x);
108
- const TInt yLen=(TInt)(y_end-y);
109
- const TInt maxEqLen=(xLen<yLen)?xLen:yLen;
110
- for (TInt i=0; i<maxEqLen; ++i) {
111
- if (x[i]!=y[i])
112
- return i;
113
- }
114
- return maxEqLen;
115
- }
116
-
117
- //得到最长的一个匹配长度和其位置.
118
- static TInt getBestMatch(TInt* out_pos,const TSuffixString& sstring,
119
- const TByte* newData,const TByte* newData_end){
120
- TInt sai=sstring.lower_bound(newData,newData_end);
121
-
122
- const TByte* src_begin=sstring.src_begin();
123
- const TByte* src_end=sstring.src_end();
124
- TInt bestLength=-1;
125
- TInt bestOldPos=-1;
126
- for (TInt i=sai-1; i<=sai; ++i) {
127
- if ((i<0)||(i>=(src_end-src_begin))) continue;
128
- TInt curOldPos=sstring.SA(i);
129
- TInt curLength=getEqualLength(newData,newData_end,src_begin+curOldPos,src_end);
130
- if (curLength>bestLength){
131
- bestLength=curLength;
132
- bestOldPos=curOldPos;
133
- }
134
- }
135
- *out_pos=bestOldPos;
136
- return bestLength;
137
- }
138
-
139
-
140
- //粗略估算覆盖线的控制数据成本;
141
- inline static TInt getCoverCtrlCost(const TOldCover& cover,const TOldCover& lastCover){
142
- static const int kUnLinkOtherScore=0;//0--2
143
- return _getIntCost<TInt,TUInt>((TInt)(cover.oldPos-lastCover.oldPos))
144
- + _getUIntCost((TUInt)cover.length)
145
- + _getUIntCost((TUInt)(cover.newPos-lastCover.newPos)) + kUnLinkOtherScore;
146
- }
147
-
148
- //粗略估算 区域内当作覆盖时的可能存储成本.
149
- inline static bool checkGetCoverCost(TInt* out_cost,TInt newPos,TInt oldPos,
150
- TInt length,const TDiffData& diff){
151
- if ((oldPos<0)||(oldPos+length>(diff.oldData_end-diff.oldData)))
152
- return false;
153
- *out_cost=(TInt)getRegionRleCost(diff.newData+newPos,length,diff.oldData+oldPos);
154
- return true;
155
- }
156
- inline static TInt getCoverCost(const TOldCover& cover,const TDiffData& diff){
157
- return (TInt)getRegionRleCost(diff.newData+cover.newPos,cover.length,diff.oldData+cover.oldPos);
158
- }
159
-
160
- //尝试延长lastCover来完全代替matchCover;
161
- static bool tryLinkExtend(TOldCover& lastCover,const TOldCover& matchCover,const TDiffData& diff){
162
- if (lastCover.length<=0) return false;
163
- const TInt linkSpaceLength=(matchCover.newPos-(lastCover.newPos+lastCover.length));
164
- if ((linkSpaceLength>kMaxLinkSpaceLength)||(matchCover.newPos==0))
165
- return false;
166
- if (lastCover.isCollinear(matchCover)){//已经共线;
167
- lastCover.Link(matchCover);
168
- return true;
169
- }
170
- TInt linkOldPos=lastCover.oldPos+lastCover.length+linkSpaceLength;
171
- TInt matchCost=getCoverCtrlCost(matchCover,lastCover);
172
- TInt lastLinkCost;
173
- if (!checkGetCoverCost(&lastLinkCost,matchCover.newPos,linkOldPos,matchCover.length,diff)) return false;
174
- if (lastLinkCost>matchCost)
175
- return false;
176
- TInt len=lastCover.length+linkSpaceLength+(matchCover.length*2/3);//扩展大部分,剩下的可能扩展留给extend_cover.
177
- len+=getEqualLength(diff.newData+lastCover.newPos+len,diff.newData_end,
178
- diff.oldData+lastCover.oldPos+len,diff.oldData_end);
179
- while ((len>0) && (diff.newData[lastCover.newPos+len-1]
180
- !=diff.oldData[lastCover.oldPos+len-1])) {
181
- --len;
182
- }
183
- lastCover.length=len;
184
- return true;
185
- }
186
-
187
- //尝试设置lastCover为matchCover所在直线的延长线,实现共线(增加合并可能等);
188
- static void tryCollinear(TOldCover& lastCover,const TOldCover& matchCover,const TDiffData& diff){
189
- if (lastCover.length<=0) return;
190
- if (lastCover.isCollinear(matchCover)) return; //已经共线;
191
- TInt linkOldPos=matchCover.oldPos-(matchCover.newPos-lastCover.newPos);
192
- TInt lastCost=getCoverCost(lastCover,diff);
193
- TInt matchLinkCost;
194
- if (!checkGetCoverCost(&matchLinkCost,lastCover.newPos,linkOldPos,lastCover.length,diff)) return;
195
- if (lastCost>=matchLinkCost)
196
- lastCover.oldPos=linkOldPos;
197
- }
198
-
199
- //寻找合适的覆盖线.
200
- static void search_cover(TDiffData& diff,const TSuffixString& sstring){
201
- if (sstring.SASize()<=0) return;
202
- static const int kMinMatchScore = 2; //最小搜寻覆盖收益.
203
- const TInt maxSearchNewPos=(diff.newData_end-diff.newData)-kMinMatchScore;
204
- TInt newPos=0;
205
- TOldCover lastCover(0,0,0);
206
- while (newPos<=maxSearchNewPos) {
207
- TInt matchOldPos=0;
208
- TInt matchEqLength=getBestMatch(&matchOldPos,sstring,diff.newData+newPos,diff.newData_end);
209
- TOldCover matchCover(matchOldPos,newPos,matchEqLength);
210
- if (matchEqLength-getCoverCtrlCost(matchCover,lastCover)<kMinMatchScore){
211
- ++newPos;//下一个需要匹配的字符串(逐位置匹配速度会比较慢).
212
- continue;
213
- }//else matched
214
-
215
- if (tryLinkExtend(lastCover,matchCover,diff)){//use link
216
- if (diff.covers.empty())
217
- diff.covers.push_back(lastCover);
218
- else
219
- diff.covers.back()=lastCover;
220
- }else{ //use match
221
- if (!diff.covers.empty())//尝试共线;
222
- tryCollinear(diff.covers.back(),matchCover,diff);
223
- diff.covers.push_back(matchCover);
224
- }
225
- lastCover=diff.covers.back();
226
- newPos=std::max(newPos+1,lastCover.newPos+lastCover.length);//选出的cover不允许重叠,这可能不是最优策略;
227
- }
228
- }
229
-
230
- //选择合适的覆盖线,去掉不合适的.
231
- static void select_cover(TDiffData& diff,int kMinSingleMatchScore){
232
- std::vector<TOldCover>& covers=diff.covers;
233
- TCompressDetect nocover_detect;
234
- TCompressDetect cover_detect;
235
-
236
- TOldCover lastCover(0,0,0);
237
- const TInt coverSize_old=(TInt)covers.size();
238
- TInt insertIndex=0;
239
- for (TInt i=0;i<coverSize_old;++i){
240
- if (covers[i].oldPos<0) continue;//处理已经del的.
241
- bool isNeedSave=false;
242
- if (!isNeedSave){//向前合并可能.
243
- if ((insertIndex>0)&&(covers[insertIndex-1].isCanLink(covers[i])))
244
- isNeedSave=true;
245
- }
246
- if (i+1<coverSize_old){//查询向后合并可能link
247
- for (TInt j=i+1;j<coverSize_old; ++j) {
248
- if (!covers[i].isCanLink(covers[j])) break;
249
- covers[i].Link(covers[j]);
250
- covers[j].oldPos=-1;//del
251
- }
252
- }
253
- if (!isNeedSave){//单覆盖是否保留.
254
- TInt noCoverCost=nocover_detect.cost(diff.newData+covers[i].newPos,covers[i].length);
255
- TInt coverCost=cover_detect.cost(diff.newData+covers[i].newPos,covers[i].length,
256
- diff.oldData+covers[i].oldPos);
257
- TInt coverSorce=noCoverCost-coverCost-getCoverCtrlCost(covers[i],lastCover);
258
- isNeedSave=(coverSorce>=kMinSingleMatchScore);
259
- }
260
-
261
- if (isNeedSave){
262
- if ((insertIndex>0)&&(covers[insertIndex-1].isCanLink(covers[i]))){//link合并.
263
- covers[insertIndex-1].Link(covers[i]);
264
- cover_detect.add_chars(diff.newData+lastCover.newPos+lastCover.length,
265
- covers[insertIndex-1].length-lastCover.length,
266
- diff.oldData+lastCover.oldPos+lastCover.length);
267
- }else{
268
- covers[insertIndex++]=covers[i];
269
- nocover_detect.add_chars(diff.newData+lastCover.newPos+lastCover.length,
270
- covers[i].newPos-(lastCover.newPos+lastCover.length));
271
- cover_detect.add_chars(diff.newData+covers[i].newPos,covers[i].length,
272
- diff.oldData+covers[i].oldPos);
273
- }
274
- lastCover=covers[insertIndex-1];
275
- }
276
- }
277
- covers.resize(insertIndex);
278
- }
279
-
280
- typedef size_t TFixedFloatSmooth; //定点数.
281
- static const TFixedFloatSmooth kFixedFloatSmooth_base=1024;//定点数小数点位置.
282
-
283
- //得到可以扩展位置的长度.
284
- static TInt getCanExtendLength(TInt oldPos,TInt newPos,int inc,TInt newPos_min,TInt lastNewEnd,
285
- const TDiffData& diff,const TFixedFloatSmooth kExtendMinSameRatio){
286
- static const unsigned int kSmoothLength=4;
287
-
288
- TFixedFloatSmooth curBestSameRatio=0;
289
- TInt curBestLength=0;
290
- TUInt curSameCount=0;
291
- const TFixedFloatSmooth kLimitSameCount=(~(TFixedFloatSmooth)0)/kFixedFloatSmooth_base;
292
- for (TUInt length=1; (oldPos>=0)&&(oldPos<(diff.oldData_end-diff.oldData))
293
- &&(newPos>=newPos_min)&&(newPos<lastNewEnd); ++length,oldPos+=inc,newPos+=inc) {
294
- if (diff.oldData[oldPos]==diff.newData[newPos]){
295
- ++curSameCount;
296
-
297
- if (curSameCount>= kLimitSameCount) break; //for curSameCount*kFixedFloatSmooth_base
298
- const TFixedFloatSmooth curSameRatio= (curSameCount*kFixedFloatSmooth_base)
299
- /(length+kSmoothLength);
300
- if (curSameRatio>=curBestSameRatio){
301
- curBestSameRatio=curSameRatio;
302
- curBestLength=length;
303
- }
304
- }
305
- }
306
- if ((curBestSameRatio<kExtendMinSameRatio)||(curBestLength<=2)){
307
- curBestLength=0;
308
- }
309
-
310
- return curBestLength;
311
- }
312
-
313
- //尝试延长覆盖区域.
314
- static void extend_cover(TDiffData& diff,const TFixedFloatSmooth kExtendMinSameRatio){
315
- std::vector<TOldCover>& covers=diff.covers;
316
-
317
- TInt lastNewEnd=0;
318
- for (TInt i=0; i<(TInt)covers.size(); ++i) {
319
- TInt newPos_next=(TInt)(diff.newData_end-diff.newData);
320
- if (i+1<(TInt)covers.size())
321
- newPos_next=covers[i+1].newPos;
322
- TOldCover& curCover=covers[i];
323
- //向前延伸.
324
- TInt extendLength_front=getCanExtendLength(curCover.oldPos-1,curCover.newPos-1,
325
- -1,lastNewEnd,newPos_next,diff,kExtendMinSameRatio);
326
- if (extendLength_front>0){
327
- curCover.oldPos-=extendLength_front;
328
- curCover.newPos-=extendLength_front;
329
- curCover.length+=extendLength_front;
330
- }
331
- //向后延伸.
332
- TInt extendLength_back=getCanExtendLength(curCover.oldPos+curCover.length,
333
- curCover.newPos+curCover.length,
334
- 1,lastNewEnd,newPos_next,diff,kExtendMinSameRatio);
335
- if (extendLength_back>0){
336
- curCover.length+=extendLength_back;
337
- }
338
-
339
- lastNewEnd=curCover.newPos+curCover.length;
340
- }
341
- }
342
-
343
- template<class _TCover,class _TInt>
344
- static void assert_cover_safe(const _TCover& cover,_TInt lastNewEnd,_TInt newSize,_TInt oldSize){
345
- check(cover.length>0);
346
- check(cover.newPos>=lastNewEnd);
347
- check(cover.newPos<newSize);
348
- check(cover.newPos+cover.length>0);
349
- check(cover.newPos+cover.length<=newSize);
350
- check(cover.oldPos>=0);
351
- check(cover.oldPos<oldSize);
352
- check(cover.oldPos+cover.length>0);
353
- check(cover.oldPos+cover.length<=oldSize);
354
- }
355
-
356
- //用覆盖线得到差异数据.
357
- static void sub_cover(TDiffData& diff){
358
- std::vector<TOldCover>& covers=diff.covers;
359
- const TByte* newData=diff.newData;
360
- const TByte* oldData=diff.oldData;
361
-
362
- diff.newDataSubDiff.resize(0);
363
- diff.newDataSubDiff.resize(diff.newData_end-diff.newData,0);
364
- TByte* newDataSubDiff=diff.newDataSubDiff.data();
365
- diff.newDataDiff.resize(0);
366
- diff.newDataDiff.reserve((diff.newData_end-diff.newData)>>2);
367
-
368
- TInt lastNewEnd=0;
369
- for (TInt i=0;i<(TInt)covers.size();++i){
370
- assert_cover_safe(covers[i],lastNewEnd,
371
- diff.newData_end-diff.newData,diff.oldData_end-diff.oldData);
372
- const TInt newPos=covers[i].newPos;
373
- if (newPos>lastNewEnd)
374
- pushBack(diff.newDataDiff,newData+lastNewEnd,newData+newPos);
375
- const TInt oldPos=covers[i].oldPos;
376
- const TInt length=covers[i].length;
377
- for (TInt si=0; si<length;++si)
378
- newDataSubDiff[si+newPos]=(newData[si+newPos]-oldData[si+oldPos]);
379
- lastNewEnd=newPos+length;
380
- }
381
- if (lastNewEnd<diff.newData_end-newData)
382
- pushBack(diff.newDataDiff,newData+lastNewEnd,diff.newData_end);
383
- }
384
-
385
- //diff结果序列化输出.
386
- static void serialize_diff(const TDiffData& diff,std::vector<TByte>& out_diff){
387
- const TUInt coverCount=(TUInt)diff.covers.size();
388
- std::vector<TByte> length_buf;
389
- std::vector<TByte> inc_newPos_buf;
390
- std::vector<TByte> inc_oldPos_buf;
391
- {
392
- TInt oldPosBack=0;
393
- TInt lastNewEnd=0;
394
- for (TUInt i=0; i<coverCount; ++i) {
395
- packUInt(length_buf, (TUInt)diff.covers[i].length);
396
- assert(diff.covers[i].newPos>=lastNewEnd);
397
- packUInt(inc_newPos_buf,(TUInt)(diff.covers[i].newPos-lastNewEnd)); //save inc_newPos
398
- if (diff.covers[i].oldPos>=oldPosBack){ //save inc_oldPos
399
- packUIntWithTag(inc_oldPos_buf,(TUInt)(diff.covers[i].oldPos-oldPosBack), 0, 1);
400
- }else{
401
- packUIntWithTag(inc_oldPos_buf,(TUInt)(oldPosBack-diff.covers[i].oldPos), 1, 1);//sub safe
402
- }
403
- oldPosBack=diff.covers[i].oldPos;
404
- lastNewEnd=diff.covers[i].newPos+diff.covers[i].length;
405
- }
406
- }
407
-
408
- packUInt(out_diff, (TUInt)coverCount);
409
- packUInt(out_diff, (TUInt)length_buf.size());
410
- packUInt(out_diff, (TUInt)inc_newPos_buf.size());
411
- packUInt(out_diff, (TUInt)inc_oldPos_buf.size());
412
- packUInt(out_diff, (TUInt)diff.newDataDiff.size());
413
- pushBack(out_diff,length_buf);
414
- pushBack(out_diff,inc_newPos_buf);
415
- pushBack(out_diff,inc_oldPos_buf);
416
- pushBack(out_diff,diff.newDataDiff);
417
-
418
- const TByte* newDataSubDiff=diff.newDataSubDiff.data();
419
- bytesRLE_save(out_diff,newDataSubDiff,
420
- newDataSubDiff+diff.newDataSubDiff.size(),kRle_bestSize);
421
- }
422
-
423
-
424
- static void do_compress(std::vector<TByte>& out_code,const std::vector<TByte>& data,
425
- const hdiff_TCompress* compressPlugin,bool isMustCompress=false){
426
- out_code.clear();
427
- if (!compressPlugin) return;
428
- if (data.empty()) return;
429
- hpatch_StreamPos_t maxCodeSize=compressPlugin->maxCompressedSize(data.size());
430
- if ((maxCodeSize<=data.size())||(maxCodeSize!=(size_t)maxCodeSize)) return; //error
431
- out_code.resize((size_t)maxCodeSize);
432
- const TByte* data0=&data[0];
433
- TByte* out_code0=&out_code[0];
434
- size_t codeSize=hdiff_compress_mem(compressPlugin,out_code0,out_code0+out_code.size(),
435
- data0,data0+data.size());
436
- if ((codeSize>0)&&(isMustCompress||(codeSize<data.size())))
437
- out_code.resize(codeSize); //ok
438
- else
439
- out_code.clear();//error or cancel
440
- }
441
- inline static void pushCompressCode(std::vector<TByte>& out_diff,
442
- const std::vector<TByte>& compress_code,
443
- const std::vector<TByte>& data){
444
- if (compress_code.empty())
445
- pushBack(out_diff,data);
446
- else
447
- pushBack(out_diff,compress_code);
448
- }
449
-
450
- template<class T>
451
- static void _outType(std::vector<TByte>& out_data,T* compressPlugin,const char* versionType=kHDiffVersionType){
452
- //type version
453
- pushCStr(out_data,versionType);
454
- pushCStr(out_data,"&");
455
- {//compressType
456
- const char* compressType="";
457
- if (compressPlugin)
458
- compressType=compressPlugin->compressType();
459
- size_t compressTypeLen=strlen(compressType);
460
- check(compressTypeLen<=hpatch_kMaxPluginTypeLength);
461
- check(0==strchr(compressType,'&'));
462
- pushCStr(out_data,compressType);
463
- }
464
- const TByte _cstrEndTag='\0';//c string end tag
465
- pushBack(out_data,&_cstrEndTag,(&_cstrEndTag)+1);
466
- }
467
-
468
- static void serialize_compressed_diff(const TDiffData& diff,std::vector<TByte>& out_diff,
469
- const hdiff_TCompress* compressPlugin){
470
- const TUInt coverCount=(TUInt)diff.covers.size();
471
- std::vector<TByte> cover_buf;
472
- {
473
- TInt lastOldEnd=0;
474
- TInt lastNewEnd=0;
475
- for (TUInt i=0; i<coverCount; ++i) {
476
- if (diff.covers[i].oldPos>=lastOldEnd){ //save inc_oldPos
477
- packUIntWithTag(cover_buf,(TUInt)(diff.covers[i].oldPos-lastOldEnd), 0, 1);
478
- }else{
479
- packUIntWithTag(cover_buf,(TUInt)(lastOldEnd-diff.covers[i].oldPos), 1, 1);//sub safe
480
- }
481
- assert(diff.covers[i].newPos>=lastNewEnd);
482
- packUInt(cover_buf,(TUInt)(diff.covers[i].newPos-lastNewEnd)); //save inc_newPos
483
- packUInt(cover_buf,(TUInt)diff.covers[i].length);
484
- lastOldEnd=diff.covers[i].oldPos+diff.covers[i].length;//! +length
485
- lastNewEnd=diff.covers[i].newPos+diff.covers[i].length;
486
- }
487
- }
488
-
489
- std::vector<TByte> rle_ctrlBuf;
490
- std::vector<TByte> rle_codeBuf;
491
- const TByte* newDataSubDiff=diff.newDataSubDiff.data();
492
- bytesRLE_save(rle_ctrlBuf,rle_codeBuf,newDataSubDiff,
493
- newDataSubDiff+diff.newDataSubDiff.size(),kRle_bestSize);
494
-
495
- std::vector<TByte> compress_cover_buf;
496
- std::vector<TByte> compress_rle_ctrlBuf;
497
- std::vector<TByte> compress_rle_codeBuf;
498
- std::vector<TByte> compress_newDataDiff;
499
- do_compress(compress_cover_buf,cover_buf,compressPlugin);
500
- do_compress(compress_rle_ctrlBuf,rle_ctrlBuf,compressPlugin);
501
- do_compress(compress_rle_codeBuf,rle_codeBuf,compressPlugin);
502
- do_compress(compress_newDataDiff,diff.newDataDiff,compressPlugin);
503
-
504
- _outType(out_diff,compressPlugin);
505
- const TUInt newDataSize=(TUInt)(diff.newData_end-diff.newData);
506
- const TUInt oldDataSize=(TUInt)(diff.oldData_end-diff.oldData);
507
- packUInt(out_diff, newDataSize);
508
- packUInt(out_diff, oldDataSize);
509
- packUInt(out_diff, coverCount);
510
- packUInt(out_diff, (TUInt)cover_buf.size());
511
- packUInt(out_diff, (TUInt)compress_cover_buf.size());
512
- packUInt(out_diff, (TUInt)rle_ctrlBuf.size());
513
- packUInt(out_diff, (TUInt)compress_rle_ctrlBuf.size());
514
- packUInt(out_diff, (TUInt)rle_codeBuf.size());
515
- packUInt(out_diff, (TUInt)compress_rle_codeBuf.size());
516
- packUInt(out_diff, (TUInt)diff.newDataDiff.size());
517
- packUInt(out_diff, (TUInt)compress_newDataDiff.size());
518
-
519
- pushCompressCode(out_diff,compress_cover_buf,cover_buf);
520
- pushCompressCode(out_diff,compress_rle_ctrlBuf,rle_ctrlBuf);
521
- pushCompressCode(out_diff,compress_rle_codeBuf,rle_codeBuf);
522
- pushCompressCode(out_diff,compress_newDataDiff,diff.newDataDiff);
523
- }
524
-
525
- static void search_cover_by_stream(TDiffData& diff,size_t kMatchBlockSize,bool isSkipSameRange){
526
- hdiff_TStreamInput oldData;
527
- mem_as_hStreamInput(&oldData,diff.oldData,diff.oldData_end);
528
- hdiff_TStreamInput newData;
529
- mem_as_hStreamInput(&newData,diff.newData,diff.newData_end);
530
- TCovers covers(oldData.streamSize,newData.streamSize);
531
- getCovers_by_stream(&newData,&oldData,kMatchBlockSize,isSkipSameRange,covers);
532
-
533
- size_t coverCount=covers.coverCount();
534
- diff.covers.resize(coverCount);
535
- TOldCover* outCover=diff.covers.data();
536
- for (size_t i=0;i<coverCount;++i,++outCover){
537
- TCover cover;
538
- covers.covers(i,&cover);
539
- outCover->oldPos=(TInt)cover.oldPos;
540
- outCover->newPos=(TInt)cover.newPos;
541
- outCover->length=(TInt)cover.length;
542
- }
543
- }
544
-
545
- static void get_diff(const TByte* newData,const TByte* newData_end,
546
- const TByte* oldData,const TByte* oldData_end,
547
- TDiffData& out_diff,int kMinSingleMatchScore,
548
- const TSuffixString* sstring=0, bool isDoSubCover=true,
549
- bool _is_search_cover_by_stream=false){
550
- assert(newData<=newData_end);
551
- assert(oldData<=oldData_end);
552
- TDiffData& diff=out_diff;
553
- diff.newData=newData;
554
- diff.newData_end=newData_end;
555
- diff.oldData=oldData;
556
- diff.oldData_end=oldData_end;
557
-
558
- if (_is_search_cover_by_stream){
559
- search_cover_by_stream(diff,8,true);
560
- }else{
561
- TSuffixString _sstring_default(0,0);
562
- if (sstring==0){
563
- _sstring_default.resetSuffixString(oldData,oldData_end);
564
- sstring=&_sstring_default;
565
- }
566
- search_cover(diff,*sstring);
567
- sstring=0;
568
- _sstring_default.clear();
569
- }
570
-
571
- TFixedFloatSmooth kExtendMinSameRatio=kMinSingleMatchScore*36+254;
572
- if (kExtendMinSameRatio<200) kExtendMinSameRatio=200;
573
- if (kExtendMinSameRatio>800) kExtendMinSameRatio=800;
574
-
575
- extend_cover(diff,kExtendMinSameRatio);//先尝试扩展.
576
- select_cover(diff,kMinSingleMatchScore);
577
- extend_cover(diff,kExtendMinSameRatio);//select_cover会删除一些覆盖线,所以重新扩展.
578
- if (isDoSubCover) sub_cover(diff);
579
- }
580
-
581
- }//end namespace
582
-
583
-
584
- void create_diff(const TByte* newData,const TByte* newData_end,
585
- const TByte* oldData,const TByte* oldData_end,
586
- std::vector<TByte>& out_diff,
587
- int kMinSingleMatchScore){
588
- TDiffData diff;
589
- get_diff(newData,newData_end,oldData,oldData_end,diff,kMinSingleMatchScore);
590
- serialize_diff(diff,out_diff);
591
- }
592
-
593
- bool check_diff(const TByte* newData,const TByte* newData_end,
594
- const TByte* oldData,const TByte* oldData_end,
595
- const TByte* diff,const TByte* diff_end){
596
- TAutoMem updateNewData(newData_end-newData);
597
- TByte* updateNew0=updateNewData.data();
598
- if (!patch(updateNew0,updateNew0+updateNewData.size(),
599
- oldData,oldData_end, diff,diff_end)) return false;
600
- return (0==memcmp(updateNew0,newData,updateNewData.size()));
601
- }
602
-
603
- void create_compressed_diff(const TByte* newData,const TByte* newData_end,
604
- const TByte* oldData,const TByte* oldData_end,
605
- std::vector<TByte>& out_diff,
606
- const hdiff_TCompress* compressPlugin,int kMinSingleMatchScore){
607
- TDiffData diff;
608
- get_diff(newData,newData_end,oldData,oldData_end,diff,kMinSingleMatchScore);
609
- serialize_compressed_diff(diff,out_diff,compressPlugin);
610
- }
611
-
612
- bool check_compressed_diff(const TByte* newData,const TByte* newData_end,
613
- const TByte* oldData,const TByte* oldData_end,
614
- const TByte* diff,const TByte* diff_end,
615
- hpatch_TDecompress* decompressPlugin){
616
- TAutoMem updateNewData(newData_end-newData);
617
- TByte* updateNew0=updateNewData.data();
618
- if (!patch_decompress_mem(updateNew0,updateNew0+updateNewData.size(),
619
- oldData,oldData_end, diff,diff_end, decompressPlugin)) return false;
620
- return (0==memcmp(updateNew0,newData,updateNewData.size()));
621
- }
622
-
623
-
624
- static void _flush_step_code(std::vector<TByte> &buf, std::vector<TByte> &step_bufCover, std::vector<TByte> &step_bufData,
625
- hdiff_private::TSangileStreamRLE0 &step_bufRle,size_t& curMaxStepMemSize) {
626
- step_bufRle.finishAppend();
627
- packUInt(buf,step_bufCover.size()); //general saved data
628
- packUInt(buf,step_bufRle.curCodeSize());
629
- size_t bufSize_back=buf.size();
630
- pushBack(buf,step_bufCover); step_bufCover.clear();
631
- pushBack(buf,step_bufRle.fixed_code); step_bufRle.clear();
632
- size_t curStepMemSize=buf.size()-bufSize_back;
633
- pushBack(buf,step_bufData); step_bufData.clear();
634
- if (curMaxStepMemSize<curStepMemSize)
635
- curMaxStepMemSize=curStepMemSize;
636
- }
637
-
638
- static void serialize_single_compressed_diff(TDiffData& diff,std::vector<TByte>& out_diff,
639
- const hdiff_TCompress* compressPlugin,size_t patchStepMemSize){
640
- check(patchStepMemSize>=hpatch_kStreamCacheSize);
641
- std::vector<TOldCover>& covers=diff.covers;
642
- const TUInt newDataSize=(TUInt)(diff.newData_end-diff.newData);
643
- const TUInt oldDataSize=(TUInt)(diff.oldData_end-diff.oldData);
644
- if (covers.empty()){
645
- covers.push_back(TOldCover(0,newDataSize,0));
646
- }else{
647
- const TOldCover& back=covers[covers.size()-1];
648
- if ((TUInt)back.newPos+(TUInt)back.length<newDataSize){
649
- covers.push_back(TOldCover(back.oldPos+back.length,newDataSize,0));
650
- }
651
- }
652
- size_t curMaxStepMemSize=0;
653
- std::vector<TByte> buf;
654
- {
655
- TInt lastOldEnd=0;
656
- TInt lastNewEnd=0;
657
- TUInt curNewDiff=0;
658
- std::vector<TByte> step_bufCover;
659
- TSangileStreamRLE0 step_bufRle;
660
- std::vector<TByte> step_bufData;
661
- TUInt i=0;
662
- while ( i<covers.size()) {
663
- const size_t step_bufCover_backSize=step_bufCover.size();
664
-
665
- const TOldCover& cover=covers[i];
666
- const TByte* subDiff=diff.newDataSubDiff.data()+cover.newPos;
667
- if (cover.oldPos>=lastOldEnd){ //save inc_oldPos
668
- packUIntWithTag(step_bufCover,(TUInt)(cover.oldPos-lastOldEnd), 0, 1);
669
- }else{
670
- packUIntWithTag(step_bufCover,(TUInt)(lastOldEnd-cover.oldPos), 1, 1);//sub safe
671
- }
672
- TInt backNewLen=cover.newPos-lastNewEnd;
673
- assert(backNewLen>=0);
674
- packUInt(step_bufCover,(TUInt)backNewLen); //save inc_newPos
675
- packUInt(step_bufCover,cover.length);
676
-
677
- const TUInt curMaxNeedSize = step_bufCover.size() + step_bufRle.maxCodeSize(subDiff,subDiff+cover.length);
678
- if (curMaxNeedSize<=patchStepMemSize){ //append
679
- step_bufRle.append(subDiff,subDiff+cover.length);
680
- if (backNewLen>0){
681
- const TByte* newDataDiff=diff.newDataDiff.data()+curNewDiff;
682
- pushBack(step_bufData,newDataDiff,newDataDiff+backNewLen);
683
- curNewDiff+=backNewLen;
684
- }
685
-
686
- //next i
687
- lastOldEnd=cover.oldPos+cover.length;//! +length
688
- lastNewEnd=cover.newPos+cover.length;
689
- ++i;
690
- }else{
691
- if (step_bufCover_backSize+step_bufRle.curCodeSize()>=(patchStepMemSize/2)){//flush step
692
- step_bufCover.resize(step_bufCover_backSize);
693
- _flush_step_code(buf,step_bufCover,step_bufData,step_bufRle,curMaxStepMemSize);
694
- continue; // old i!
695
- }else{ //clip one cover to two cover
696
- TOldCover& cover_l=covers[i];
697
- TUInt clen=cover_l.length;
698
- while (1) {
699
- clen=clen*3/4;
700
- check(clen>0); // stepMemSize error
701
- const TUInt _curMaxNeedSize = step_bufCover.size() + step_bufRle.maxCodeSize(subDiff,subDiff+clen);
702
- if (_curMaxNeedSize<=patchStepMemSize)
703
- break;
704
- }
705
- TOldCover cover_r=cover_l;
706
- cover_l.length=clen;
707
- cover_r.length-=clen;
708
- cover_r.oldPos+=clen;
709
- cover_r.newPos+=clen;
710
- covers.insert(covers.begin()+(i+1),cover_r);
711
-
712
- step_bufCover.resize(step_bufCover_backSize);
713
- continue; // old i!
714
- }
715
- }
716
- }
717
- check(diff.newDataDiff.size()==curNewDiff);
718
- if (!step_bufCover.empty())
719
- _flush_step_code(buf,step_bufCover,step_bufData,step_bufRle,curMaxStepMemSize);
720
- }
721
- assert(curMaxStepMemSize<=patchStepMemSize);
722
-
723
- std::vector<TByte> compress_buf;
724
- do_compress(compress_buf,buf,compressPlugin);
725
-
726
- _outType(out_diff,compress_buf.empty()?0:compressPlugin,kHDiffSFVersionType);
727
- packUInt(out_diff, newDataSize);
728
- packUInt(out_diff, oldDataSize);
729
- packUInt(out_diff, covers.size());
730
- packUInt(out_diff, curMaxStepMemSize);
731
- packUInt(out_diff, (TUInt)buf.size());
732
- packUInt(out_diff, (TUInt)compress_buf.size());
733
-
734
- pushCompressCode(out_diff,compress_buf,buf);
735
- }
736
-
737
- void create_single_compressed_diff(const TByte* newData,const TByte* newData_end,
738
- const TByte* oldData,const TByte* oldData_end,
739
- std::vector<unsigned char>& out_diff,ICoverLinesListener* listener,const hdiff_TCompress* compressPlugin,
740
- int kMinSingleMatchScore,size_t patchStepMemSize,bool _is_search_cover_by_stream){
741
- TDiffData diff;
742
- get_diff(newData,newData_end,oldData,oldData_end,diff,kMinSingleMatchScore,0,false,_is_search_cover_by_stream);
743
- if (listener){
744
- std::vector<hpatch_TCover> _covers(diff.covers.size());
745
- for (size_t i=0; i<diff.covers.size(); ++i) {
746
- _covers[i].oldPos=diff.covers[i].oldPos;
747
- _covers[i].newPos=diff.covers[i].newPos;
748
- _covers[i].length=diff.covers[i].length;
749
- }
750
- hpatch_StreamPos_t newDataSize=(size_t)(diff.newData_end-diff.newData);
751
- hpatch_StreamPos_t oldDataSize=(size_t)(diff.oldData_end-diff.oldData);
752
- size_t coverCount=_covers.size();
753
- listener->coverLines(listener,_covers.data(),&coverCount,&newDataSize,&oldDataSize);
754
- assert(coverCount<=_covers.size());
755
- diff.covers.resize(coverCount);
756
- diff.newData_end=diff.newData+newDataSize;
757
- diff.oldData_end=diff.oldData+oldDataSize;
758
- for (size_t i=0; i<diff.covers.size(); ++i){
759
- diff.covers[i].oldPos=(TInt)_covers[i].oldPos;
760
- diff.covers[i].newPos=(TInt)_covers[i].newPos;
761
- diff.covers[i].length=(TInt)_covers[i].length;
762
- }
763
- }
764
- sub_cover(diff);
765
- serialize_single_compressed_diff(diff,out_diff,compressPlugin,patchStepMemSize);
766
- }
767
-
768
- static hpatch_BOOL _check_single_onDiffInfo(struct sspatch_listener_t* listener,
769
- const hpatch_singleCompressedDiffInfo* info,
770
- hpatch_TDecompress** out_decompressPlugin,
771
- unsigned char** out_temp_cache,
772
- unsigned char** out_temp_cacheEnd){
773
- size_t memSize=(size_t)(info->stepMemSize+hpatch_kStreamCacheSize*3);
774
- *out_temp_cache=(unsigned char*)malloc(memSize);
775
- *out_temp_cacheEnd=(*out_temp_cache)+memSize;
776
- *out_decompressPlugin=(hpatch_TDecompress*)listener->import;
777
- return hpatch_TRUE;
778
- }
779
- static void _check_single_onPatchFinish(struct sspatch_listener_t* listener,
780
- unsigned char* temp_cache, unsigned char* temp_cacheEnd){
781
- if (temp_cache) free(temp_cache);
782
- }
783
-
784
- bool check_single_compressed_diff(const TByte* newData,const TByte* newData_end,
785
- const TByte* oldData,const TByte* oldData_end,
786
- const TByte* diff,const TByte* diff_end,
787
- hpatch_TDecompress* decompressPlugin){
788
- sspatch_listener_t listener={0};
789
- listener.import=decompressPlugin;
790
- listener.onDiffInfo=_check_single_onDiffInfo;
791
- listener.onPatchFinish=_check_single_onPatchFinish;
792
- TAutoMem updateNewData(newData_end-newData);
793
- TByte* updateNew0=updateNewData.data();
794
- if (!patch_single_stream_by_mem(&listener,updateNew0,updateNew0+updateNewData.size(),
795
- oldData,oldData_end,diff,diff_end)) return false;
796
- return (0==memcmp(updateNew0,newData,updateNewData.size()));
797
- }
798
-
799
-
800
- #define _test(value) { if (!(value)) { fprintf(stderr,"patch check "#value" error!\n"); return hpatch_FALSE; } }
801
-
802
- bool check_compressed_diff_stream(const hpatch_TStreamInput* newData,
803
- const hpatch_TStreamInput* oldData,
804
- const hpatch_TStreamInput* compressed_diff,
805
- hpatch_TDecompress* decompressPlugin){
806
-
807
- struct _TCheckOutNewDataStream:public hpatch_TStreamOutput{
808
- explicit _TCheckOutNewDataStream(const hpatch_TStreamInput* _newData,
809
- TByte* _buf,size_t _bufSize)
810
- :newData(_newData),writedLen(0),buf(_buf),bufSize(_bufSize){
811
- streamImport=this;
812
- streamSize=newData->streamSize;
813
- read_writed=0;
814
- write=_write_check;
815
- }
816
- static hpatch_BOOL _write_check(const hpatch_TStreamOutput* stream,hpatch_StreamPos_t writeToPos,
817
- const TByte* data,const TByte* data_end){
818
- _TCheckOutNewDataStream* self=(_TCheckOutNewDataStream*)stream->streamImport;
819
- _test(self->writedLen==writeToPos);
820
- self->writedLen+=(size_t)(data_end-data);
821
- _test(self->writedLen<=self->streamSize);
822
-
823
- hpatch_StreamPos_t readPos=writeToPos;
824
- while (data<data_end) {
825
- size_t readLen=(size_t)(data_end-data);
826
- if (readLen>self->bufSize) readLen=self->bufSize;
827
- _test(self->newData->read(self->newData,readPos,self->buf,self->buf+readLen));
828
- _test(0==memcmp(data,self->buf,readLen));
829
- data+=readLen;
830
- readPos+=readLen;
831
- }
832
- return hpatch_TRUE;
833
- }
834
- bool isWriteFinish()const{ return writedLen==newData->streamSize; }
835
- const hpatch_TStreamInput* newData;
836
- hpatch_StreamPos_t writedLen;
837
- TByte* buf;
838
- size_t bufSize;
839
- };
840
-
841
- const size_t kACacheBufSize=hpatch_kFileIOBufBetterSize;
842
- TAutoMem _cache(kACacheBufSize*8);
843
- _TCheckOutNewDataStream out_newData(newData,_cache.data(),kACacheBufSize);
844
- _test(patch_decompress_with_cache(&out_newData,oldData,compressed_diff,decompressPlugin,
845
- _cache.data()+kACacheBufSize,_cache.data_end()));
846
- _test(out_newData.isWriteFinish());
847
- return true;
848
- }
849
- #undef _test
850
-
851
- //for test
852
- void __hdiff_private__create_compressed_diff(const TByte* newData,const TByte* newData_end,
853
- const TByte* oldData,const TByte* oldData_end,
854
- std::vector<TByte>& out_diff,
855
- const hdiff_TCompress* compressPlugin,int kMinSingleMatchScore,
856
- const TSuffixString* sstring){
857
- TDiffData diff;
858
- get_diff(newData,newData_end,oldData,oldData_end,diff,kMinSingleMatchScore,sstring);
859
- serialize_compressed_diff(diff,out_diff,compressPlugin);
860
- }
861
-
862
-
863
- //======================
864
- #include "private_diff/limit_mem_diff/digest_matcher.h"
865
- #include "private_diff/limit_mem_diff/stream_serialize.h"
866
-
867
- static void getCovers_by_stream(const hpatch_TStreamInput* newData,
868
- const hpatch_TStreamInput* oldData,
869
- size_t kMatchBlockSize,bool kIsSkipSameRange,
870
- TCovers& out_covers){
871
- {
872
- TDigestMatcher matcher(oldData,kMatchBlockSize,kIsSkipSameRange);
873
- matcher.search_cover(newData,&out_covers);
874
- }
875
- {//check cover
876
- TCover cover;
877
- hpatch_StreamPos_t lastNewEnd=0;
878
- size_t coverCount=out_covers.coverCount();
879
- for (size_t i=0;i<coverCount;++i){
880
- out_covers.covers(i,&cover);
881
- assert_cover_safe(cover,lastNewEnd,newData->streamSize,oldData->streamSize);
882
- lastNewEnd=cover.newPos+cover.length;
883
- }
884
- }
885
- //todo: + extend_cover_stream ?
886
- }
887
-
888
- static void stream_serialize(const hpatch_TStreamInput* newData,
889
- hpatch_StreamPos_t oldDataSize,
890
- const hpatch_TStreamOutput* out_diff,
891
- const hdiff_TCompress* compressPlugin,
892
- const TCovers& covers){
893
-
894
- std::vector<TByte> rle_ctrlBuf;
895
- std::vector<TByte> rle_codeBuf;
896
- {//empty rle //todo: suport rle data
897
- if (newData->streamSize>0)
898
- packUIntWithTag(rle_ctrlBuf,newData->streamSize-1,kByteRleType_rle0,kByteRleType_bit);
899
- assert(rle_codeBuf.empty());
900
- }
901
-
902
- TDiffStream outDiff(out_diff);
903
- {//type
904
- std::vector<TByte> out_type;
905
- _outType(out_type,compressPlugin);
906
- outDiff.pushBack(out_type.data(),out_type.size());
907
- }
908
- outDiff.packUInt(newData->streamSize);
909
- outDiff.packUInt(oldDataSize);
910
- outDiff.packUInt(covers.coverCount());
911
- const hpatch_StreamPos_t cover_buf_size=TCoversStream::getDataSize(covers);
912
- outDiff.packUInt(cover_buf_size);
913
- TPlaceholder compress_cover_buf_sizePos=
914
- outDiff.packUInt_pos(compressPlugin?cover_buf_size:0); //compress_cover_buf size
915
- outDiff.packUInt(rle_ctrlBuf.size());//rle_ctrlBuf size
916
- outDiff.packUInt(0);//compress_rle_ctrlBuf size
917
- outDiff.packUInt(rle_codeBuf.size());//rle_codeBuf size
918
- outDiff.packUInt(0);//compress_rle_codeBuf size
919
- const hpatch_StreamPos_t newDataDiff_size=
920
- TNewDataDiffStream::getDataSize(covers,newData->streamSize);
921
- outDiff.packUInt(newDataDiff_size);
922
- TPlaceholder compress_newDataDiff_sizePos=
923
- outDiff.packUInt_pos(compressPlugin?newDataDiff_size:0); //compress_newDataDiff size
924
-
925
- {//save covers
926
- TCoversStream cover_buf(covers,cover_buf_size);
927
- outDiff.pushStream(&cover_buf,compressPlugin,compress_cover_buf_sizePos);
928
- }
929
- {//rle
930
- outDiff.pushBack(rle_ctrlBuf.data(),rle_ctrlBuf.size());
931
- outDiff.pushBack(rle_codeBuf.data(),rle_codeBuf.size());
932
- }
933
- {//save newDataDiff
934
- TNewDataDiffStream newDataDiff(covers,newData,newDataDiff_size);
935
- outDiff.pushStream(&newDataDiff,compressPlugin,compress_newDataDiff_sizePos);
936
- }
937
- }
938
-
939
- void create_compressed_diff_stream(const hpatch_TStreamInput* newData,
940
- const hpatch_TStreamInput* oldData,
941
- const hpatch_TStreamOutput* out_diff,
942
- const hdiff_TCompress* compressPlugin,size_t kMatchBlockSize){
943
- const bool isSkipSameRange=(compressPlugin!=0);
944
- TCovers covers(oldData->streamSize,newData->streamSize);
945
- getCovers_by_stream(newData,oldData,kMatchBlockSize,isSkipSameRange,covers);
946
- stream_serialize(newData,oldData->streamSize,out_diff,compressPlugin,covers);
947
- }
948
-
949
-
950
- void resave_compressed_diff(const hpatch_TStreamInput* in_diff,
951
- hpatch_TDecompress* decompressPlugin,
952
- const hpatch_TStreamOutput* out_diff,
953
- const hdiff_TCompress* compressPlugin){
954
- _THDiffzHead head;
955
- hpatch_compressedDiffInfo diffInfo;
956
- assert(in_diff!=0);
957
- assert(in_diff->read!=0);
958
- assert(out_diff!=0);
959
- assert(out_diff->write!=0);
960
-
961
- {//read head
962
- checki(read_diffz_head(&diffInfo,&head,in_diff),
963
- "resave_compressed_diff() read_diffz_head() error!");
964
- checki((decompressPlugin!=0)||(diffInfo.compressedCount<=0),
965
- "resave_compressed_diff() decompressPlugin null error!");
966
- if ((decompressPlugin)&&(diffInfo.compressedCount>0)){
967
- checki(decompressPlugin->is_can_open(diffInfo.compressType),
968
- "resave_compressed_diff() decompressPlugin cannot open compressed data error!");
969
- }
970
- }
971
-
972
- TDiffStream outDiff(out_diff);
973
- {//type
974
- std::vector<TByte> out_type;
975
- _outType(out_type,compressPlugin);
976
- outDiff.pushBack(out_type.data(),out_type.size());
977
- }
978
- {//copy other
979
- TStreamClip clip(in_diff,head.typesEndPos,head.compressSizeBeginPos);
980
- outDiff.pushStream(&clip);
981
- }
982
- outDiff.packUInt(head.cover_buf_size);
983
- TPlaceholder compress_cover_buf_sizePos=
984
- outDiff.packUInt_pos(compressPlugin?head.cover_buf_size:0);//compress_cover_buf size
985
- outDiff.packUInt(head.rle_ctrlBuf_size);//rle_ctrlBuf size
986
- TPlaceholder compress_rle_ctrlBuf_sizePos=
987
- outDiff.packUInt_pos(compressPlugin?head.rle_ctrlBuf_size:0);//compress_rle_ctrlBuf size
988
- outDiff.packUInt(head.rle_codeBuf_size);//rle_codeBuf size
989
- TPlaceholder compress_rle_codeBuf_sizePos=
990
- outDiff.packUInt_pos(compressPlugin?head.rle_codeBuf_size:0);//compress_rle_codeBuf size
991
- outDiff.packUInt(head.newDataDiff_size);
992
- TPlaceholder compress_newDataDiff_sizePos=
993
- outDiff.packUInt_pos(compressPlugin?head.newDataDiff_size:0);//compress_newDataDiff size
994
-
995
- {//save covers
996
- TStreamClip clip(in_diff,head.headEndPos,head.coverEndPos,
997
- (head.compress_cover_buf_size>0)?decompressPlugin:0,head.cover_buf_size);
998
- outDiff.pushStream(&clip,compressPlugin,compress_cover_buf_sizePos);
999
- }
1000
- hpatch_StreamPos_t diffPos0=head.coverEndPos;
1001
- {//save rle ctrl
1002
- bool isCompressed=(head.compress_rle_ctrlBuf_size>0);
1003
- hpatch_StreamPos_t bufSize=isCompressed?head.compress_rle_ctrlBuf_size:head.rle_ctrlBuf_size;
1004
- TStreamClip clip(in_diff,diffPos0,diffPos0+bufSize,
1005
- isCompressed?decompressPlugin:0,head.rle_ctrlBuf_size);
1006
- outDiff.pushStream(&clip,compressPlugin,compress_rle_ctrlBuf_sizePos);
1007
- diffPos0+=bufSize;
1008
- }
1009
- {//save rle code
1010
- bool isCompressed=(head.compress_rle_codeBuf_size>0);
1011
- hpatch_StreamPos_t bufSize=isCompressed?head.compress_rle_codeBuf_size:head.rle_codeBuf_size;
1012
- TStreamClip clip(in_diff,diffPos0,diffPos0+bufSize,
1013
- isCompressed?decompressPlugin:0,head.rle_codeBuf_size);
1014
- outDiff.pushStream(&clip,compressPlugin,compress_rle_codeBuf_sizePos);
1015
- diffPos0+=bufSize;
1016
- }
1017
- {//save newDataDiff
1018
- bool isCompressed=(head.compress_newDataDiff_size>0);
1019
- hpatch_StreamPos_t bufSize=isCompressed?head.compress_newDataDiff_size:head.newDataDiff_size;
1020
- TStreamClip clip(in_diff,diffPos0,diffPos0+bufSize,
1021
- isCompressed?decompressPlugin:0,head.newDataDiff_size);
1022
- outDiff.pushStream(&clip,compressPlugin,compress_newDataDiff_sizePos);
1023
- diffPos0+=bufSize;
1024
- }
1025
- }