react-native-update 10.34.3 → 10.34.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/harmony/pushy/src/main/cpp/HDiffPatch/CHANGELOG.md +34 -172
- package/harmony/pushy/src/main/cpp/HDiffPatch/LICENSE +4 -4
- package/harmony/pushy/src/main/cpp/HDiffPatch/Makefile +63 -379
- package/harmony/pushy/src/main/cpp/HDiffPatch/README.md +170 -415
- package/harmony/pushy/src/main/cpp/HDiffPatch/_atosize.h +10 -54
- package/harmony/pushy/src/main/cpp/HDiffPatch/_clock_for_demo.h +1 -13
- package/harmony/pushy/src/main/cpp/HDiffPatch/builds/android_ndk_jni_mk/Android.mk +18 -171
- package/harmony/pushy/src/main/cpp/HDiffPatch/builds/android_ndk_jni_mk/Application.mk +4 -5
- package/harmony/pushy/src/main/cpp/HDiffPatch/builds/android_ndk_jni_mk/hpatch.c +7 -38
- package/harmony/pushy/src/main/cpp/HDiffPatch/builds/android_ndk_jni_mk/hpatch.h +4 -15
- package/harmony/pushy/src/main/cpp/HDiffPatch/builds/android_ndk_jni_mk/hpatch_jni.c +12 -22
- package/harmony/pushy/src/main/cpp/HDiffPatch/builds/android_ndk_jni_mk/java/com/github/sisong/HPatch.java +4 -22
- package/harmony/pushy/src/main/cpp/HDiffPatch/builds/codeblocks/HDiffPatch.workspace +8 -0
- package/harmony/pushy/src/main/cpp/HDiffPatch/builds/codeblocks/HDiffZ.cbp +219 -0
- package/harmony/pushy/src/main/cpp/HDiffPatch/builds/codeblocks/HPatchZ.cbp +156 -0
- package/harmony/pushy/src/main/cpp/HDiffPatch/builds/codeblocks/unitTest.cbp +65 -0
- package/harmony/pushy/src/main/cpp/HDiffPatch/builds/vc/HDiffPatch.sln +105 -155
- package/harmony/pushy/src/main/cpp/HDiffPatch/builds/vc/HDiffZ.vcxproj +236 -363
- package/harmony/pushy/src/main/cpp/HDiffPatch/builds/vc/HDiffZ.vcxproj.user +3 -0
- package/harmony/pushy/src/main/cpp/HDiffPatch/builds/vc/HPatchZ.vcxproj +317 -347
- package/harmony/pushy/src/main/cpp/HDiffPatch/builds/vc/HPatchZ.vcxproj.user +3 -0
- package/harmony/pushy/src/main/cpp/HDiffPatch/builds/vc/unitTest.vcxproj +181 -295
- package/harmony/pushy/src/main/cpp/HDiffPatch/builds/vc/unitTest.vcxproj.user +3 -0
- package/harmony/pushy/src/main/cpp/HDiffPatch/builds/xcode/HDiffPatch.xcworkspace/contents.xcworkspacedata +0 -9
- package/harmony/pushy/src/main/cpp/HDiffPatch/builds/xcode/bestParams.xcodeproj/project.pbxproj +14 -53
- package/harmony/pushy/src/main/cpp/HDiffPatch/builds/xcode/hdiffz.xcodeproj/project.pbxproj +32 -162
- package/harmony/pushy/src/main/cpp/HDiffPatch/builds/xcode/hpatchz.xcodeproj/project.pbxproj +22 -89
- package/harmony/pushy/src/main/cpp/HDiffPatch/builds/xcode/lzma.xcodeproj/project.pbxproj +13 -237
- package/harmony/pushy/src/main/cpp/HDiffPatch/builds/xcode/testHashClash.xcodeproj/project.pbxproj +2 -2
- package/harmony/pushy/src/main/cpp/HDiffPatch/builds/xcode/unitTest.xcodeproj/project.pbxproj +14 -194
- package/harmony/pushy/src/main/cpp/HDiffPatch/builds/xcode/zstd.xcodeproj/project.pbxproj +10 -30
- package/harmony/pushy/src/main/cpp/HDiffPatch/checksum_plugin_demo.h +3 -458
- package/harmony/pushy/src/main/cpp/HDiffPatch/compress_parallel.cpp +71 -106
- package/harmony/pushy/src/main/cpp/HDiffPatch/compress_parallel.h +3 -3
- package/harmony/pushy/src/main/cpp/HDiffPatch/compress_plugin_demo.h +110 -484
- package/harmony/pushy/src/main/cpp/HDiffPatch/decompress_plugin_demo.h +193 -835
- package/harmony/pushy/src/main/cpp/HDiffPatch/dirDiffPatch/dir_diff/dir_diff.cpp +50 -99
- package/harmony/pushy/src/main/cpp/HDiffPatch/dirDiffPatch/dir_diff/dir_diff.h +4 -18
- package/harmony/pushy/src/main/cpp/HDiffPatch/dirDiffPatch/dir_diff/dir_diff_tools.cpp +8 -147
- package/harmony/pushy/src/main/cpp/HDiffPatch/dirDiffPatch/dir_diff/dir_diff_tools.h +6 -18
- package/harmony/pushy/src/main/cpp/HDiffPatch/dirDiffPatch/dir_diff/dir_manifest.cpp +25 -7
- package/harmony/pushy/src/main/cpp/HDiffPatch/dirDiffPatch/dir_diff/file_for_dirDiff.h +113 -5
- package/harmony/pushy/src/main/cpp/HDiffPatch/dirDiffPatch/dir_patch/dir_patch.c +97 -163
- package/harmony/pushy/src/main/cpp/HDiffPatch/dirDiffPatch/dir_patch/dir_patch.h +39 -49
- package/harmony/pushy/src/main/cpp/HDiffPatch/dirDiffPatch/dir_patch/dir_patch_tools.c +15 -15
- package/harmony/pushy/src/main/cpp/HDiffPatch/dirDiffPatch/dir_patch/dir_patch_tools.h +2 -18
- package/harmony/pushy/src/main/cpp/HDiffPatch/dirDiffPatch/dir_patch/dir_patch_types.h +4 -8
- package/harmony/pushy/src/main/cpp/HDiffPatch/dirDiffPatch/dir_patch/new_dir_output.c +57 -72
- package/harmony/pushy/src/main/cpp/HDiffPatch/dirDiffPatch/dir_patch/new_dir_output.h +13 -18
- package/harmony/pushy/src/main/cpp/HDiffPatch/dirDiffPatch/dir_patch/new_stream.c +1 -1
- package/harmony/pushy/src/main/cpp/HDiffPatch/dirDiffPatch/dir_patch/new_stream.h +2 -2
- package/harmony/pushy/src/main/cpp/HDiffPatch/dirDiffPatch/dir_patch/ref_stream.c +2 -2
- package/harmony/pushy/src/main/cpp/HDiffPatch/dirDiffPatch/dir_patch/ref_stream.h +2 -2
- package/harmony/pushy/src/main/cpp/HDiffPatch/dirDiffPatch/dir_patch/res_handle_limit.c +2 -2
- package/harmony/pushy/src/main/cpp/HDiffPatch/dirDiffPatch/dir_patch/res_handle_limit.h +1 -1
- package/harmony/pushy/src/main/cpp/HDiffPatch/file_for_patch.c +100 -311
- package/harmony/pushy/src/main/cpp/HDiffPatch/file_for_patch.h +72 -53
- package/harmony/pushy/src/main/cpp/HDiffPatch/hdiffz.cpp +487 -888
- package/harmony/pushy/src/main/cpp/HDiffPatch/hpatch_dir_listener.h +28 -45
- package/harmony/pushy/src/main/cpp/HDiffPatch/hpatchz.c +247 -812
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/diff.cpp +544 -1265
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/diff.h +38 -123
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/diff_types.h +0 -115
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/private_diff/bytes_rle.cpp +102 -272
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/private_diff/bytes_rle.h +12 -22
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/private_diff/compress_detect.cpp +4 -18
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/private_diff/compress_detect.h +5 -7
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/{divsufsort.cpp → divsufsort.c} +8 -5
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/divsufsort.c.inc.h +164 -91
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/divsufsort.h +102 -5
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/divsufsort64.c +13 -0
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/divsufsort64.h +97 -1
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/divsufsort_private.h +44 -23
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/sssort.c.inc.h +89 -54
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/trsort.c.inc.h +55 -48
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/utils.c.inc.h +381 -0
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/private_diff/limit_mem_diff/adler_roll.c +47 -110
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/private_diff/limit_mem_diff/adler_roll.h +4 -11
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/private_diff/limit_mem_diff/bloom_filter.h +26 -53
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/private_diff/limit_mem_diff/covers.h +25 -103
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/private_diff/limit_mem_diff/digest_matcher.cpp +130 -271
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/private_diff/limit_mem_diff/digest_matcher.h +7 -17
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/private_diff/limit_mem_diff/stream_serialize.cpp +37 -628
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/private_diff/limit_mem_diff/stream_serialize.h +43 -203
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/private_diff/mem_buf.h +10 -14
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/private_diff/pack_uint.h +7 -22
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/private_diff/suffix_string.cpp +46 -132
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/private_diff/suffix_string.h +9 -48
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HPatch/patch.c +299 -650
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HPatch/patch.h +82 -120
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HPatch/patch_private.h +7 -87
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HPatch/patch_types.h +9 -119
- package/harmony/pushy/src/main/cpp/HDiffPatch/libParallel/parallel_channel.cpp +6 -2
- package/harmony/pushy/src/main/cpp/HDiffPatch/libParallel/parallel_channel.h +15 -192
- package/harmony/pushy/src/main/cpp/HDiffPatch/libParallel/parallel_import.cpp +367 -0
- package/harmony/pushy/src/main/cpp/HDiffPatch/libParallel/parallel_import.h +56 -31
- package/harmony/pushy/src/main/cpp/HDiffPatch/test/_private_searchBestParams.cpp +1 -1
- package/harmony/pushy/src/main/cpp/HDiffPatch/test/hpatchz_test.cpp +1 -0
- package/harmony/pushy/src/main/cpp/HDiffPatch/test/testHashClash.cpp +31 -225
- package/harmony/pushy/src/main/cpp/HDiffPatch/test/unit_test.cpp +94 -566
- package/harmony/pushy/src/main/cpp/lzma/Asm/x86/7zAsm.asm +28 -222
- package/harmony/pushy/src/main/cpp/lzma/Asm/x86/7zCrcOpt.asm +117 -228
- package/harmony/pushy/src/main/cpp/lzma/Asm/x86/AesOpt.asm +173 -678
- package/harmony/pushy/src/main/cpp/lzma/Asm/x86/LzmaDecOpt.asm +22 -103
- package/harmony/pushy/src/main/cpp/lzma/Asm/x86/XzCrc64Opt.asm +167 -485
- package/harmony/pushy/src/main/cpp/lzma/C/7z.h +6 -8
- package/harmony/pushy/src/main/cpp/lzma/C/7zAlloc.c +30 -39
- package/harmony/pushy/src/main/cpp/lzma/C/7zAlloc.h +3 -3
- package/harmony/pushy/src/main/cpp/lzma/C/7zArcIn.c +217 -232
- package/harmony/pushy/src/main/cpp/lzma/C/7zBuf.h +3 -3
- package/harmony/pushy/src/main/cpp/lzma/C/7zCrc.c +68 -404
- package/harmony/pushy/src/main/cpp/lzma/C/7zCrc.h +6 -9
- package/harmony/pushy/src/main/cpp/lzma/C/7zCrcOpt.c +79 -163
- package/harmony/pushy/src/main/cpp/lzma/C/7zDec.c +78 -160
- package/harmony/pushy/src/main/cpp/lzma/C/7zFile.c +58 -215
- package/harmony/pushy/src/main/cpp/lzma/C/7zFile.h +6 -15
- package/harmony/pushy/src/main/cpp/lzma/C/7zStream.c +23 -46
- package/harmony/pushy/src/main/cpp/lzma/C/7zTypes.h +89 -311
- package/harmony/pushy/src/main/cpp/lzma/C/7zVersion.h +5 -5
- package/harmony/pushy/src/main/cpp/lzma/C/Aes.c +68 -191
- package/harmony/pushy/src/main/cpp/lzma/C/Aes.h +8 -30
- package/harmony/pushy/src/main/cpp/lzma/C/AesOpt.c +108 -926
- package/harmony/pushy/src/main/cpp/lzma/C/Alloc.c +96 -246
- package/harmony/pushy/src/main/cpp/lzma/C/Alloc.h +8 -33
- package/harmony/pushy/src/main/cpp/lzma/C/Bcj2.c +144 -177
- package/harmony/pushy/src/main/cpp/lzma/C/Bcj2.h +42 -228
- package/harmony/pushy/src/main/cpp/lzma/C/Bcj2Enc.c +182 -377
- package/harmony/pushy/src/main/cpp/lzma/C/Bra.c +143 -622
- package/harmony/pushy/src/main/cpp/lzma/C/Bra.h +40 -81
- package/harmony/pushy/src/main/cpp/lzma/C/Bra86.c +58 -163
- package/harmony/pushy/src/main/cpp/lzma/C/BraIA64.c +48 -9
- package/harmony/pushy/src/main/cpp/lzma/C/Compiler.h +15 -228
- package/harmony/pushy/src/main/cpp/lzma/C/CpuArch.c +133 -885
- package/harmony/pushy/src/main/cpp/lzma/C/CpuArch.h +78 -428
- package/harmony/pushy/src/main/cpp/lzma/C/Delta.c +31 -136
- package/harmony/pushy/src/main/cpp/lzma/C/Delta.h +3 -3
- package/harmony/pushy/src/main/cpp/lzma/C/DllSecur.c +62 -53
- package/harmony/pushy/src/main/cpp/lzma/C/DllSecur.h +5 -5
- package/harmony/pushy/src/main/cpp/lzma/C/LzFind.c +495 -1114
- package/harmony/pushy/src/main/cpp/lzma/C/LzFind.h +25 -64
- package/harmony/pushy/src/main/cpp/lzma/C/LzFindMt.c +400 -969
- package/harmony/pushy/src/main/cpp/lzma/C/LzFindMt.h +24 -37
- package/harmony/pushy/src/main/cpp/lzma/C/LzHash.h +48 -25
- package/harmony/pushy/src/main/cpp/lzma/C/Lzma2Dec.c +7 -12
- package/harmony/pushy/src/main/cpp/lzma/C/Lzma2Dec.h +7 -8
- package/harmony/pushy/src/main/cpp/lzma/C/Lzma2DecMt.c +83 -96
- package/harmony/pushy/src/main/cpp/lzma/C/Lzma2DecMt.h +9 -11
- package/harmony/pushy/src/main/cpp/lzma/C/Lzma2Enc.c +92 -96
- package/harmony/pushy/src/main/cpp/lzma/C/Lzma2Enc.h +9 -12
- package/harmony/pushy/src/main/cpp/lzma/C/Lzma86.h +3 -3
- package/harmony/pushy/src/main/cpp/lzma/C/Lzma86Dec.c +4 -3
- package/harmony/pushy/src/main/cpp/lzma/C/Lzma86Enc.c +6 -3
- package/harmony/pushy/src/main/cpp/lzma/C/LzmaDec.c +206 -384
- package/harmony/pushy/src/main/cpp/lzma/C/LzmaDec.h +8 -11
- package/harmony/pushy/src/main/cpp/lzma/C/LzmaEnc.c +315 -489
- package/harmony/pushy/src/main/cpp/lzma/C/LzmaEnc.h +9 -18
- package/harmony/pushy/src/main/cpp/lzma/C/LzmaLib.c +3 -5
- package/harmony/pushy/src/main/cpp/lzma/C/LzmaLib.h +14 -21
- package/harmony/pushy/src/main/cpp/lzma/C/MtCoder.c +87 -90
- package/harmony/pushy/src/main/cpp/lzma/C/MtCoder.h +25 -28
- package/harmony/pushy/src/main/cpp/lzma/C/MtDec.c +88 -74
- package/harmony/pushy/src/main/cpp/lzma/C/MtDec.h +20 -21
- package/harmony/pushy/src/main/cpp/lzma/C/Ppmd.h +34 -118
- package/harmony/pushy/src/main/cpp/lzma/C/Ppmd7.c +293 -712
- package/harmony/pushy/src/main/cpp/lzma/C/Ppmd7.h +70 -109
- package/harmony/pushy/src/main/cpp/lzma/C/Ppmd7Dec.c +116 -237
- package/harmony/pushy/src/main/cpp/lzma/C/Ppmd7Enc.c +95 -245
- package/harmony/pushy/src/main/cpp/lzma/C/Precomp.h +5 -122
- package/harmony/pushy/src/main/cpp/lzma/C/RotateDefs.h +4 -24
- package/harmony/pushy/src/main/cpp/lzma/C/Sha256.c +143 -387
- package/harmony/pushy/src/main/cpp/lzma/C/Sha256.h +7 -67
- package/harmony/pushy/src/main/cpp/lzma/C/Sort.c +114 -241
- package/harmony/pushy/src/main/cpp/lzma/C/Sort.h +7 -4
- package/harmony/pushy/src/main/cpp/lzma/C/Threads.c +14 -731
- package/harmony/pushy/src/main/cpp/lzma/C/Threads.h +14 -204
- package/harmony/pushy/src/main/cpp/lzma/C/ThreadsP.c +396 -0
- package/harmony/pushy/src/main/cpp/lzma/C/ThreadsP.h +31 -0
- package/harmony/pushy/src/main/cpp/lzma/C/Util/7z/7z.dsp +2 -10
- package/harmony/pushy/src/main/cpp/lzma/C/Util/7z/7zMain.c +79 -282
- package/harmony/pushy/src/main/cpp/lzma/C/Util/7z/Precomp.h +7 -10
- package/harmony/pushy/src/main/cpp/lzma/C/Util/7z/makefile +3 -7
- package/harmony/pushy/src/main/cpp/lzma/C/Util/7z/makefile.gcc +75 -32
- package/harmony/pushy/src/main/cpp/lzma/C/Util/Lzma/LzmaUtil.c +56 -111
- package/harmony/pushy/src/main/cpp/lzma/C/Util/Lzma/LzmaUtil.dsp +0 -24
- package/harmony/pushy/src/main/cpp/lzma/C/Util/Lzma/makefile +0 -2
- package/harmony/pushy/src/main/cpp/lzma/C/Util/Lzma/makefile.gcc +41 -18
- package/harmony/pushy/src/main/cpp/lzma/C/Util/LzmaLib/LzmaLib.dsp +2 -30
- package/harmony/pushy/src/main/cpp/lzma/C/Util/LzmaLib/LzmaLibExports.c +6 -7
- package/harmony/pushy/src/main/cpp/lzma/C/Util/LzmaLib/makefile +2 -27
- package/harmony/pushy/src/main/cpp/lzma/C/Util/SfxSetup/Precomp.h +7 -10
- package/harmony/pushy/src/main/cpp/lzma/C/Util/SfxSetup/SfxSetup.c +22 -39
- package/harmony/pushy/src/main/cpp/lzma/C/Util/SfxSetup/makefile +2 -9
- package/harmony/pushy/src/main/cpp/lzma/C/Util/SfxSetup/makefile_con +1 -3
- package/harmony/pushy/src/main/cpp/lzma/C/Xz.c +3 -5
- package/harmony/pushy/src/main/cpp/lzma/C/Xz.h +47 -129
- package/harmony/pushy/src/main/cpp/lzma/C/XzCrc64.c +43 -97
- package/harmony/pushy/src/main/cpp/lzma/C/XzCrc64.h +8 -8
- package/harmony/pushy/src/main/cpp/lzma/C/XzCrc64Opt.c +36 -228
- package/harmony/pushy/src/main/cpp/lzma/C/XzDec.c +295 -405
- package/harmony/pushy/src/main/cpp/lzma/C/XzEnc.c +139 -194
- package/harmony/pushy/src/main/cpp/lzma/C/XzEnc.h +11 -15
- package/harmony/pushy/src/main/cpp/lzma/C/XzIn.c +134 -200
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/7zip.mak +6 -6
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Aes.mak +1 -4
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/7z/7zCompressionMode.h +13 -29
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/7z/7zDecode.cpp +90 -120
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/7z/7zDecode.h +6 -9
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/7z/7zEncode.cpp +140 -183
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/7z/7zEncode.h +20 -23
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/7z/7zExtract.cpp +57 -78
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/7z/7zFolderInStream.cpp +44 -169
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/7z/7zFolderInStream.h +17 -57
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/7z/7zHandler.cpp +109 -141
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/7z/7zHandler.h +57 -54
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/7z/7zHandlerOut.cpp +116 -336
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/7z/7zHeader.cpp +1 -1
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/7z/7zHeader.h +9 -17
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/7z/7zIn.cpp +136 -234
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/7z/7zIn.h +26 -35
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/7z/7zItem.h +5 -10
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/7z/7zOut.cpp +155 -280
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/7z/7zOut.h +40 -51
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/7z/7zProperties.cpp +59 -67
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/7z/7zProperties.h +2 -6
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/7z/7zRegister.cpp +2 -8
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/7z/7zSpecStream.cpp +3 -12
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/7z/7zSpecStream.h +9 -23
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/7z/7zUpdate.cpp +387 -975
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/7z/7zUpdate.h +16 -44
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/7z/StdAfx.h +2 -5
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/Archive.def +0 -2
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/Archive2.def +0 -2
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/ArchiveExports.cpp +8 -15
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/Common/CoderMixer2.cpp +87 -106
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/Common/CoderMixer2.h +57 -57
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/Common/DummyOutStream.cpp +1 -1
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/Common/DummyOutStream.h +8 -6
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/Common/HandlerOut.cpp +43 -126
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/Common/HandlerOut.h +18 -77
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/Common/InStreamWithCRC.cpp +9 -20
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/Common/InStreamWithCRC.h +23 -20
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/Common/ItemNameUtils.cpp +9 -61
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/Common/ItemNameUtils.h +3 -8
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/Common/MultiStream.cpp +27 -29
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/Common/MultiStream.h +26 -23
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/Common/OutStreamWithCRC.cpp +2 -2
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/Common/OutStreamWithCRC.h +8 -6
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/Common/ParseProperties.h +2 -2
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/Common/StdAfx.h +2 -5
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/DllExports2.cpp +10 -63
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/IArchive.h +173 -319
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/LzmaHandler.cpp +113 -92
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/SplitHandler.cpp +53 -47
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/StdAfx.h +2 -5
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/XzHandler.cpp +208 -352
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Archive/XzHandler.h +2 -2
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Asm.mak +3 -6
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/Alone7z/Alone.dsp +47 -227
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/Alone7z/StdAfx.h +2 -5
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/Alone7z/makefile +5 -19
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/Format7zExtractR/StdAfx.h +2 -5
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/Format7zExtractR/makefile +2 -4
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/Format7zR/StdAfx.h +2 -5
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/Format7zR/makefile +1 -6
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/LzmaCon/LzmaAlone.cpp +53 -71
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/LzmaCon/LzmaCon.dsp +22 -85
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/LzmaCon/StdAfx.h +2 -5
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/LzmaCon/makefile +4 -13
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/LzmaCon/makefile.gcc +166 -102
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/SFXCon/SFXCon.dsp +4 -109
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/SFXCon/SfxCon.cpp +30 -69
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/SFXCon/StdAfx.h +2 -5
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/SFXCon/makefile +7 -10
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/SFXCon/resource.rc +1 -5
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/SFXSetup/ExtractCallbackSfx.cpp +16 -16
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/SFXSetup/ExtractCallbackSfx.h +12 -9
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/SFXSetup/ExtractEngine.cpp +9 -7
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/SFXSetup/ExtractEngine.h +2 -2
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/SFXSetup/SFXSetup.dsp +5 -74
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/SFXSetup/SfxSetup.cpp +51 -58
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/SFXSetup/StdAfx.h +10 -3
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/SFXSetup/makefile +5 -9
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/SFXWin/SFXWin.dsp +6 -92
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/SFXWin/SfxWin.cpp +19 -46
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/SFXWin/StdAfx.h +11 -3
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/SFXWin/makefile +5 -11
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/SFXWin/resource.rc +0 -5
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/CWrappers.cpp +28 -136
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/CWrappers.h +5 -67
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/CreateCoder.cpp +62 -74
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/CreateCoder.h +24 -32
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/FilePathAutoRename.cpp +7 -7
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/FilePathAutoRename.h +2 -2
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/FileStreams.cpp +100 -548
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/FileStreams.h +86 -125
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/FilterCoder.cpp +116 -258
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/FilterCoder.h +76 -72
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/InBuffer.cpp +15 -34
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/InBuffer.h +9 -38
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/InOutTempBuffer.cpp +82 -192
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/InOutTempBuffer.h +28 -25
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/LimitedStreams.cpp +52 -78
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/LimitedStreams.h +83 -52
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/LockedStream.h +2 -2
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/MethodId.h +2 -2
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/MethodProps.cpp +67 -323
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/MethodProps.h +38 -123
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/OffsetStream.cpp +8 -6
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/OffsetStream.h +13 -9
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/OutBuffer.cpp +12 -12
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/OutBuffer.h +7 -74
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/ProgressUtils.cpp +5 -5
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/ProgressUtils.h +13 -11
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/PropId.cpp +1 -10
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/RegisterArc.h +14 -16
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/RegisterCodec.h +16 -16
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/StdAfx.h +2 -5
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/StreamBinder.cpp +50 -45
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/StreamBinder.h +21 -39
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/StreamObjects.cpp +42 -47
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/StreamObjects.h +53 -42
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/StreamUtils.cpp +4 -49
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/StreamUtils.h +2 -20
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/UniqBlocks.cpp +4 -4
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/UniqBlocks.h +5 -20
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/VirtThread.cpp +9 -8
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/VirtThread.h +5 -5
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/Bcj2Coder.cpp +355 -556
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/Bcj2Coder.h +59 -66
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/Bcj2Register.cpp +2 -2
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/BcjCoder.cpp +6 -6
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/BcjCoder.h +13 -19
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/BcjRegister.cpp +2 -2
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/BranchMisc.cpp +5 -88
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/BranchMisc.h +18 -42
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/BranchRegister.cpp +16 -33
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/ByteSwap.cpp +53 -52
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/CodecExports.cpp +30 -64
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/CopyCoder.cpp +22 -55
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/CopyCoder.h +26 -11
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/DeltaFilter.cpp +28 -26
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/Lzma2Decoder.cpp +28 -30
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/Lzma2Decoder.h +54 -45
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/Lzma2Encoder.cpp +12 -24
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/Lzma2Encoder.h +22 -10
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/Lzma2Register.cpp +1 -1
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/LzmaDecoder.cpp +26 -33
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/LzmaDecoder.h +51 -51
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/LzmaEncoder.cpp +40 -232
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/LzmaEncoder.h +14 -13
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/LzmaRegister.cpp +1 -1
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/PpmdDecoder.cpp +35 -84
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/PpmdDecoder.h +41 -42
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/PpmdEncoder.cpp +25 -66
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/PpmdEncoder.h +17 -8
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/PpmdRegister.cpp +1 -1
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/StdAfx.h +2 -5
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/XzDecoder.cpp +12 -13
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/XzDecoder.h +32 -26
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/XzEncoder.cpp +16 -14
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Compress/XzEncoder.h +20 -9
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Crc.mak +1 -1
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Crc64.mak +1 -1
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Crypto/7zAes.cpp +32 -67
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Crypto/7zAes.h +18 -30
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Crypto/7zAesRegister.cpp +3 -3
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Crypto/MyAes.cpp +43 -208
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Crypto/MyAes.h +25 -90
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Crypto/MyAesReg.cpp +4 -17
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Crypto/RandGen.cpp +21 -29
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Crypto/RandGen.h +3 -4
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Crypto/StdAfx.h +2 -5
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/GuiCommon.rc +3 -38
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Guid.txt +3 -26
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/ICoder.h +172 -253
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/IDecl.h +7 -55
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/IPassword.h +12 -43
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/IProgress.h +9 -10
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/IStream.h +50 -133
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/LzmaDec.mak +2 -4
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/MyVersionInfo.rc +1 -1
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/PropID.h +2 -53
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Client7z/Client7z.cpp +177 -329
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Client7z/Client7z.dsp +1 -97
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Client7z/StdAfx.h +2 -5
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Client7z/makefile +1 -2
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/ArchiveCommandLine.cpp +183 -687
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/ArchiveCommandLine.h +15 -49
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/ArchiveExtractCallback.cpp +913 -2275
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/ArchiveExtractCallback.h +115 -353
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/ArchiveName.cpp +106 -127
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/ArchiveName.h +3 -9
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/ArchiveOpenCallback.cpp +35 -272
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/ArchiveOpenCallback.h +64 -134
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/Bench.cpp +1200 -2608
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/Bench.h +20 -64
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/DefaultName.cpp +1 -1
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/DefaultName.h +2 -2
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/DirItem.h +36 -253
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/EnumDirItems.cpp +233 -774
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/EnumDirItems.h +6 -2
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/ExitCode.h +2 -2
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/Extract.cpp +63 -156
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/Extract.h +10 -23
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/ExtractMode.h +2 -12
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/ExtractingFilePath.cpp +6 -22
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/ExtractingFilePath.h +4 -4
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/HashCalc.cpp +65 -1991
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/HashCalc.h +29 -241
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/IFileExtractCallback.h +47 -45
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/LoadCodecs.cpp +179 -442
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/LoadCodecs.h +89 -147
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/OpenArchive.cpp +380 -529
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/OpenArchive.h +42 -75
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/PropIDUtils.cpp +86 -163
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/PropIDUtils.h +5 -5
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/Property.h +2 -2
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/SetProperties.cpp +15 -23
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/SetProperties.h +2 -2
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/SortUtils.h +2 -2
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/StdAfx.h +2 -5
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/TempFiles.cpp +1 -2
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/TempFiles.h +2 -5
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/Update.cpp +368 -595
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/Update.h +47 -68
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/UpdateAction.h +2 -2
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/UpdateCallback.cpp +146 -444
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/UpdateCallback.h +68 -103
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/UpdatePair.cpp +42 -111
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/UpdatePair.h +2 -2
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/UpdateProduce.cpp +3 -7
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/UpdateProduce.h +6 -11
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/WorkDir.cpp +35 -25
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/WorkDir.h +4 -8
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Common/ZipRegistry.h +9 -91
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Console/BenchCon.cpp +4 -4
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Console/BenchCon.h +2 -2
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Console/Console.mak +1 -4
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Console/Console.manifest +0 -3
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Console/ConsoleClose.cpp +19 -48
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Console/ConsoleClose.h +12 -18
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Console/ExtractCallbackConsole.cpp +41 -162
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Console/ExtractCallbackConsole.h +41 -88
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Console/HashCon.cpp +81 -140
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Console/HashCon.h +17 -27
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Console/List.cpp +124 -182
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Console/List.h +7 -22
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Console/Main.cpp +109 -590
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Console/MainAr.cpp +2 -62
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Console/OpenCallbackConsole.cpp +3 -3
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Console/OpenCallbackConsole.h +10 -17
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Console/PercentPrinter.cpp +10 -13
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Console/PercentPrinter.h +9 -13
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Console/StdAfx.h +2 -5
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Console/UpdateCallbackConsole.cpp +24 -320
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Console/UpdateCallbackConsole.h +26 -50
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Console/UserInputUtils.cpp +5 -13
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Console/UserInputUtils.h +2 -2
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Console/makefile +2 -6
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Explorer/MyMessages.cpp +6 -12
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Explorer/MyMessages.h +4 -4
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/BrowseDialog.cpp +195 -302
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/BrowseDialog.h +4 -15
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/ComboDialog.cpp +2 -2
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/ComboDialog.h +6 -6
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/DialogSize.h +2 -2
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/ExtractCallback.cpp +181 -416
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/ExtractCallback.h +197 -216
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/FormatUtils.h +2 -2
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/LangUtils.h +5 -13
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/MyWindowsNew.h +5 -48
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/OverwriteDialog.cpp +49 -215
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/OverwriteDialog.h +30 -50
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/OverwriteDialog.rc +1 -3
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/OverwriteDialogRes.h +3 -5
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/PasswordDialog.cpp +5 -5
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/PasswordDialog.h +6 -6
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/PasswordDialog.rc +0 -4
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/ProgressDialog.cpp +10 -15
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/ProgressDialog.h +17 -18
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/ProgressDialog2.cpp +130 -276
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/ProgressDialog2.h +52 -56
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/ProgressDialog2Res.h +1 -2
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/ProgressDialog2a.rc +3 -8
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/PropertyName.h +2 -2
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/PropertyNameRes.h +0 -9
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/SysIconUtils.cpp +89 -185
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/SysIconUtils.h +20 -23
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/resource.h +1 -23
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/resourceGui.h +0 -10
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/GUI/Extract.rc +4 -4
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/GUI/ExtractDialog.cpp +33 -36
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/GUI/ExtractDialog.h +15 -15
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/GUI/ExtractGUI.cpp +22 -39
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/GUI/ExtractGUI.h +3 -4
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/GUI/HashGUI.h +2 -2
- package/harmony/pushy/src/main/cpp/lzma/CPP/Build.mak +13 -109
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/AutoPtr.h +14 -25
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/CRC.cpp +1 -1
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/C_FileIO.cpp +90 -1
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/C_FileIO.h +49 -2
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/ComTry.h +2 -2
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/CommandLineParser.cpp +7 -41
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/CommandLineParser.h +3 -3
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/Common.h +29 -14
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/CrcReg.cpp +45 -24
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/Defs.h +2 -3
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/DynamicBuffer.h +5 -17
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/IntToString.cpp +110 -132
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/IntToString.h +9 -35
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/Lang.h +5 -12
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/ListFileUtils.cpp +31 -49
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/ListFileUtils.h +4 -4
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/MyBuffer.h +21 -59
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/MyBuffer2.h +10 -95
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/MyCom.h +81 -497
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/MyException.h +2 -2
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/MyGuidDef.h +9 -18
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/MyInitGuid.h +5 -17
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/MyLinux.h +2 -35
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/MyString.cpp +164 -347
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/MyString.h +35 -246
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/MyTypes.h +8 -11
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/MyUnknown.h +11 -2
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/MyVector.h +94 -184
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/MyWindows.cpp +11 -158
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/MyWindows.h +54 -148
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/NewHandler.cpp +27 -204
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/NewHandler.h +5 -38
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/Sha256Reg.cpp +16 -43
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/StdAfx.h +2 -2
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/StdInStream.cpp +11 -20
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/StdInStream.h +5 -13
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/StdOutStream.cpp +39 -124
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/StdOutStream.h +11 -27
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/StringConvert.cpp +15 -458
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/StringConvert.h +2 -24
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/StringToInt.cpp +89 -99
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/StringToInt.h +2 -19
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/TextConfig.cpp +11 -10
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/TextConfig.h +2 -2
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/UTFConvert.cpp +102 -677
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/UTFConvert.h +5 -377
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/Wildcard.cpp +84 -197
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/Wildcard.h +25 -107
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/XzCrc64Reg.cpp +14 -11
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/COM.h +8 -24
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/CommonDialog.cpp +113 -197
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/CommonDialog.h +12 -32
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Control/ComboBox.cpp +4 -4
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Control/ComboBox.h +10 -22
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Control/CommandBar.h +6 -6
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Control/Dialog.cpp +47 -242
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Control/Dialog.h +51 -94
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Control/Edit.h +2 -2
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Control/ImageList.h +4 -4
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Control/ListView.cpp +26 -33
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Control/ListView.h +22 -32
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Control/ProgressBar.h +13 -13
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Control/PropertyPage.cpp +34 -56
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Control/PropertyPage.h +9 -9
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Control/ReBar.h +3 -3
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Control/Static.h +2 -2
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Control/StatusBar.h +5 -5
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Control/StdAfx.h +2 -5
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Control/ToolBar.h +3 -3
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Control/Trackbar.h +2 -2
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Control/Window2.cpp +6 -8
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Control/Window2.h +7 -9
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/DLL.cpp +8 -77
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/DLL.h +10 -55
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Defs.h +4 -4
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/ErrorMsg.cpp +2 -69
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/ErrorMsg.h +2 -3
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/FileDir.cpp +80 -728
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/FileDir.h +7 -62
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/FileFind.cpp +56 -756
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/FileFind.h +19 -205
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/FileIO.cpp +47 -569
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/FileIO.h +28 -283
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/FileLink.cpp +112 -369
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/FileMapping.h +3 -3
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/FileName.cpp +113 -185
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/FileName.h +14 -41
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/FileSystem.cpp +10 -66
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/FileSystem.h +2 -6
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Handle.h +4 -6
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/MemoryLock.cpp +14 -29
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/MemoryLock.h +2 -2
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/NtCheck.h +2 -14
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/PropVariant.cpp +56 -102
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/PropVariant.h +9 -68
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/PropVariantConv.cpp +14 -150
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/PropVariantConv.h +3 -13
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Registry.cpp +128 -212
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Registry.h +20 -32
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/ResourceString.cpp +4 -4
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/ResourceString.h +2 -3
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/SecurityUtils.cpp +18 -23
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/SecurityUtils.h +56 -39
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Shell.cpp +58 -539
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Shell.h +14 -49
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/StdAfx.h +2 -5
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Synchronization.cpp +0 -77
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Synchronization.h +18 -240
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/System.cpp +38 -317
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/System.h +5 -154
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Thread.h +10 -18
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/TimeUtils.cpp +37 -291
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/TimeUtils.h +10 -124
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Window.cpp +7 -7
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Window.h +19 -98
- package/harmony/pushy/src/main/cpp/lzma/CS/7zip/Compress/LzmaAlone/LzmaAlone.csproj +90 -0
- package/harmony/pushy/src/main/cpp/lzma/DOC/Methods.txt +2 -6
- package/harmony/pushy/src/main/cpp/lzma/DOC/lzma-history.txt +0 -205
- package/harmony/pushy/src/main/cpp/lzma/DOC/lzma-sdk.txt +13 -93
- package/harmony/pushy/src/main/cpp/lzma/DOC/lzma.txt +13 -30
- package/harmony/pushy/src/main/cpp/lzma/bin/7zS2.sfx +0 -0
- package/harmony/pushy/src/main/cpp/lzma/bin/7zS2con.sfx +0 -0
- package/harmony/pushy/src/main/cpp/lzma/bin/7zSD.sfx +0 -0
- package/harmony/pushy/src/main/cpp/lzma/bin/7zdec.exe +0 -0
- package/harmony/pushy/src/main/cpp/lzma/bin/7zr.exe +0 -0
- package/harmony/pushy/src/main/cpp/lzma/bin/lzma.exe +0 -0
- package/harmony/pushy/src/main/cpp/lzma/bin/x64/7zr.exe +0 -0
- package/package.json +1 -1
- package/react-native-update.podspec +0 -1
- package/react-native.config.js +1 -0
- package/src/client.ts +1 -2
- package/src/type.ts +1 -0
- package/harmony/pushy/src/main/cpp/HDiffPatch/README_cn.md +0 -547
- package/harmony/pushy/src/main/cpp/HDiffPatch/_hextobytes.h +0 -112
- package/harmony/pushy/src/main/cpp/HDiffPatch/bsdiff_wrapper/bsdiff_wrapper.cpp +0 -389
- package/harmony/pushy/src/main/cpp/HDiffPatch/bsdiff_wrapper/bsdiff_wrapper.h +0 -73
- package/harmony/pushy/src/main/cpp/HDiffPatch/bsdiff_wrapper/bspatch_wrapper.c +0 -266
- package/harmony/pushy/src/main/cpp/HDiffPatch/bsdiff_wrapper/bspatch_wrapper.h +0 -58
- package/harmony/pushy/src/main/cpp/HDiffPatch/builds/android_ndk_jni_mk/build_libs_patchers.bat +0 -1
- package/harmony/pushy/src/main/cpp/HDiffPatch/builds/android_ndk_jni_mk/build_libs_patchers.sh +0 -1
- package/harmony/pushy/src/main/cpp/HDiffPatch/builds/vc/bzip2.vcxproj +0 -228
- package/harmony/pushy/src/main/cpp/HDiffPatch/builds/vc/hpatchz_test.vcxproj +0 -215
- package/harmony/pushy/src/main/cpp/HDiffPatch/builds/vc/libdeflate.vcxproj +0 -256
- package/harmony/pushy/src/main/cpp/HDiffPatch/builds/vc/longPathAware.exe.manifest +0 -7
- package/harmony/pushy/src/main/cpp/HDiffPatch/builds/vc/lzma.vcxproj +0 -271
- package/harmony/pushy/src/main/cpp/HDiffPatch/builds/vc/testHashClash.vcxproj +0 -228
- package/harmony/pushy/src/main/cpp/HDiffPatch/builds/vc/zlib.vcxproj +0 -242
- package/harmony/pushy/src/main/cpp/HDiffPatch/builds/vc/zstd.vcxproj +0 -287
- package/harmony/pushy/src/main/cpp/HDiffPatch/builds/xcode/HDiffPatch.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings +0 -8
- package/harmony/pushy/src/main/cpp/HDiffPatch/builds/xcode/libdeflate.xcodeproj/project.pbxproj +0 -286
- package/harmony/pushy/src/main/cpp/HDiffPatch/builds/xcode/zlib.xcodeproj/project.pbxproj +0 -308
- package/harmony/pushy/src/main/cpp/HDiffPatch/builds/xcode_iOS_hpatchz/hpatch_objc/hpatch_objc.h +0 -33
- package/harmony/pushy/src/main/cpp/HDiffPatch/builds/xcode_iOS_hpatchz/hpatch_objc/hpatch_objc.m +0 -33
- package/harmony/pushy/src/main/cpp/HDiffPatch/builds/xcode_iOS_hpatchz/hpatchz.xcodeproj/project.pbxproj +0 -774
- package/harmony/pushy/src/main/cpp/HDiffPatch/hdiffz_import_patch.c +0 -31
- package/harmony/pushy/src/main/cpp/HDiffPatch/hdiffz_import_patch.h +0 -42
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/diff_for_hpatch_lite.h +0 -74
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/match_block.cpp +0 -478
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/match_block.h +0 -222
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/divsufsort64.cpp +0 -14
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/private_diff/match_inplace.cpp +0 -168
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/private_diff/match_inplace.h +0 -44
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HDiff/private_diff/qsort_parallel.h +0 -125
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HPatch/hpatch_mt/_hcache_old_mt.c +0 -243
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HPatch/hpatch_mt/_hcache_old_mt.h +0 -51
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HPatch/hpatch_mt/_hinput_mt.c +0 -153
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HPatch/hpatch_mt/_hinput_mt.h +0 -54
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HPatch/hpatch_mt/_houtput_mt.c +0 -158
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HPatch/hpatch_mt/_houtput_mt.h +0 -49
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HPatch/hpatch_mt/_hpatch_mt.c +0 -294
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HPatch/hpatch_mt/_hpatch_mt.h +0 -59
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HPatch/hpatch_mt/_patch_private_mt.h +0 -217
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HPatch/hpatch_mt/hpatch_mt.c +0 -349
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HPatch/hpatch_mt/hpatch_mt.h +0 -110
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HPatchLite/hpatch_lite.c +0 -366
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HPatchLite/hpatch_lite.h +0 -91
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HPatchLite/hpatch_lite_input_cache.h +0 -31
- package/harmony/pushy/src/main/cpp/HDiffPatch/libHDiffPatch/HPatchLite/hpatch_lite_types.h +0 -106
- package/harmony/pushy/src/main/cpp/HDiffPatch/libParallel/parallel_import_c.c +0 -497
- package/harmony/pushy/src/main/cpp/HDiffPatch/libParallel/parallel_import_c.h +0 -106
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/sign_diff/_match_in_old_sign.cpp +0 -254
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/sign_diff/_match_in_old_sign.h +0 -39
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/sign_diff/_sign_diff_type.h +0 -37
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/sign_diff/sign_diff.cpp +0 -62
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/sign_diff/sign_diff.h +0 -44
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/sync_client/dict_decompress_plugin.h +0 -156
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/sync_client/dir_sync_client.cpp +0 -440
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/sync_client/dir_sync_client.h +0 -88
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/sync_client/match_in_old.cpp +0 -332
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/sync_client/match_in_old.h +0 -48
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/sync_client/match_in_types.h +0 -198
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/sync_client/sync_client.cpp +0 -697
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/sync_client/sync_client.h +0 -74
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/sync_client/sync_client_private.h +0 -262
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/sync_client/sync_client_type.h +0 -174
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/sync_client/sync_client_type_private.h +0 -174
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/sync_client/sync_diff_data.cpp +0 -252
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/sync_client/sync_diff_data.h +0 -67
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/sync_client/sync_info_client.cpp +0 -680
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/sync_client/sync_info_client.h +0 -137
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/sync_make/dict_compress_plugin.h +0 -83
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/sync_make/dir_sync_make.cpp +0 -125
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/sync_make/dir_sync_make.h +0 -56
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/sync_make/hsynz_plugin.h +0 -55
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/sync_make/match_in_new.cpp +0 -147
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/sync_make/match_in_new.h +0 -38
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/sync_make/sync_info_make.cpp +0 -354
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/sync_make/sync_info_make.h +0 -76
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/sync_make/sync_make.cpp +0 -521
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/sync_make/sync_make.h +0 -69
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/sync_make/sync_make_hash_clash.h +0 -122
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/sync_make/sync_make_private.h +0 -66
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/zsync_client_wrapper/zsync_client_type.h +0 -36
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/zsync_client_wrapper/zsync_client_type_private.h +0 -81
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/zsync_client_wrapper/zsync_client_wrapper.cpp +0 -247
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/zsync_client_wrapper/zsync_client_wrapper.h +0 -71
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/zsync_client_wrapper/zsync_info_client.cpp +0 -351
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/zsync_client_wrapper/zsync_info_client.h +0 -42
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/zsync_client_wrapper/zsync_match_in_old.cpp +0 -124
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/zsync_client_wrapper/zsync_match_in_old.h +0 -38
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/zsync_make_wrapper/zsync_info_make.cpp +0 -203
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/zsync_make_wrapper/zsync_info_make.h +0 -55
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/zsync_make_wrapper/zsync_make_wrapper.cpp +0 -79
- package/harmony/pushy/src/main/cpp/HDiffPatch/libhsync/zsync_make_wrapper/zsync_make_wrapper.h +0 -66
- package/harmony/pushy/src/main/cpp/HDiffPatch/vcdiff_wrapper/vcdiff_wrapper.cpp +0 -628
- package/harmony/pushy/src/main/cpp/HDiffPatch/vcdiff_wrapper/vcdiff_wrapper.h +0 -95
- package/harmony/pushy/src/main/cpp/HDiffPatch/vcdiff_wrapper/vcpatch_code_table.h +0 -78
- package/harmony/pushy/src/main/cpp/HDiffPatch/vcdiff_wrapper/vcpatch_wrapper.c +0 -950
- package/harmony/pushy/src/main/cpp/HDiffPatch/vcdiff_wrapper/vcpatch_wrapper.h +0 -72
- package/harmony/pushy/src/main/cpp/lzma/Asm/arm64/7zAsm.S +0 -181
- package/harmony/pushy/src/main/cpp/lzma/Asm/arm64/LzmaDecOpt.S +0 -1487
- package/harmony/pushy/src/main/cpp/lzma/Asm/x86/LzFindOpt.asm +0 -540
- package/harmony/pushy/src/main/cpp/lzma/Asm/x86/Sha256Opt.asm +0 -275
- package/harmony/pushy/src/main/cpp/lzma/Asm/x86/Sort.asm +0 -860
- package/harmony/pushy/src/main/cpp/lzma/C/7zWindows.h +0 -101
- package/harmony/pushy/src/main/cpp/lzma/C/7zip_gcc_c.mak +0 -360
- package/harmony/pushy/src/main/cpp/lzma/C/Asm_c.mak +0 -12
- package/harmony/pushy/src/main/cpp/lzma/C/LzFindOpt.c +0 -578
- package/harmony/pushy/src/main/cpp/lzma/C/Sha256Opt.c +0 -451
- package/harmony/pushy/src/main/cpp/lzma/C/SwapBytes.c +0 -835
- package/harmony/pushy/src/main/cpp/lzma/C/SwapBytes.h +0 -17
- package/harmony/pushy/src/main/cpp/lzma/C/Util/Lzma/Precomp.h +0 -13
- package/harmony/pushy/src/main/cpp/lzma/C/Util/LzmaLib/Precomp.c +0 -4
- package/harmony/pushy/src/main/cpp/lzma/C/Util/LzmaLib/Precomp.h +0 -13
- package/harmony/pushy/src/main/cpp/lzma/C/var_clang.mak +0 -11
- package/harmony/pushy/src/main/cpp/lzma/C/var_clang_arm64.mak +0 -12
- package/harmony/pushy/src/main/cpp/lzma/C/var_clang_x64.mak +0 -11
- package/harmony/pushy/src/main/cpp/lzma/C/var_clang_x86.mak +0 -11
- package/harmony/pushy/src/main/cpp/lzma/C/var_gcc.mak +0 -12
- package/harmony/pushy/src/main/cpp/lzma/C/var_gcc_arm64.mak +0 -12
- package/harmony/pushy/src/main/cpp/lzma/C/var_gcc_x64.mak +0 -10
- package/harmony/pushy/src/main/cpp/lzma/C/var_gcc_x86.mak +0 -10
- package/harmony/pushy/src/main/cpp/lzma/C/var_mac_arm64.mak +0 -11
- package/harmony/pushy/src/main/cpp/lzma/C/var_mac_x64.mak +0 -11
- package/harmony/pushy/src/main/cpp/lzma/C/warn_clang.mak +0 -1
- package/harmony/pushy/src/main/cpp/lzma/C/warn_clang_mac.mak +0 -1
- package/harmony/pushy/src/main/cpp/lzma/C/warn_gcc.mak +0 -51
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/7zip_gcc.mak +0 -1370
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/Alone7z/makefile.gcc +0 -279
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Bundles/SFXCon/makefile.gcc +0 -215
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/MultiOutStream.cpp +0 -855
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Common/MultiOutStream.h +0 -160
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/LzFindOpt.mak +0 -7
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/LzmaDec_gcc.mak +0 -14
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Sha256.mak +0 -13
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/Sort.mak +0 -6
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Client7z/makefile.gcc +0 -72
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/Console/makefile.gcc +0 -187
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/MemDialog.cpp +0 -218
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/MemDialog.h +0 -48
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/MemDialogRes.h +0 -13
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/FileManager/StdAfx.h +0 -67
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/UI/GUI/7zG.exe.manifest +0 -23
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/cmpl_clang.mak +0 -3
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/cmpl_clang_arm64.mak +0 -3
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/cmpl_clang_x64.mak +0 -3
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/cmpl_clang_x86.mak +0 -3
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/cmpl_gcc.mak +0 -3
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/cmpl_gcc_arm64.mak +0 -3
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/cmpl_gcc_x64.mak +0 -3
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/cmpl_gcc_x86.mak +0 -3
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/cmpl_mac_arm64.mak +0 -3
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/cmpl_mac_x64.mak +0 -3
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/var_clang.mak +0 -11
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/var_clang_arm64.mak +0 -19
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/var_clang_x64.mak +0 -11
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/var_clang_x86.mak +0 -11
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/var_gcc.mak +0 -12
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/var_gcc_arm64.mak +0 -12
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/var_gcc_x64.mak +0 -11
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/var_gcc_x86.mak +0 -10
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/var_mac_arm64.mak +0 -13
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/var_mac_x64.mak +0 -11
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/warn_clang.mak +0 -3
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/warn_clang_mac.mak +0 -9
- package/harmony/pushy/src/main/cpp/lzma/CPP/7zip/warn_gcc.mak +0 -55
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/Common0.h +0 -330
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/DynLimBuf.cpp +0 -93
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/DynLimBuf.h +0 -41
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/LzFindPrepare.cpp +0 -7
- package/harmony/pushy/src/main/cpp/lzma/CPP/Common/Sha256Prepare.cpp +0 -7
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Clipboard.cpp +0 -130
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/Clipboard.h +0 -28
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/MemoryGlobal.cpp +0 -36
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/MemoryGlobal.h +0 -55
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/SystemInfo.cpp +0 -1251
- package/harmony/pushy/src/main/cpp/lzma/CPP/Windows/SystemInfo.h +0 -19
- package/ios/ImportReact.h +0 -2
|
@@ -1,217 +1,97 @@
|
|
|
1
1
|
/* LzFindMt.c -- multithreaded Match finder for LZ algorithms
|
|
2
|
-
: Igor Pavlov : Public domain */
|
|
2
|
+
2018-12-29 : Igor Pavlov : Public domain */
|
|
3
3
|
|
|
4
4
|
#include "Precomp.h"
|
|
5
5
|
|
|
6
|
-
// #include <stdio.h>
|
|
7
|
-
|
|
8
|
-
#include "CpuArch.h"
|
|
9
|
-
|
|
10
6
|
#include "LzHash.h"
|
|
11
|
-
#include "LzFindMt.h"
|
|
12
|
-
|
|
13
|
-
// #define LOG_ITERS
|
|
14
|
-
|
|
15
|
-
// #define LOG_THREAD
|
|
16
|
-
|
|
17
|
-
#ifdef LOG_THREAD
|
|
18
|
-
#include <stdio.h>
|
|
19
|
-
#define PRF(x) x
|
|
20
|
-
#else
|
|
21
|
-
#define PRF(x)
|
|
22
|
-
#endif
|
|
23
|
-
|
|
24
|
-
#ifdef LOG_ITERS
|
|
25
|
-
#include <stdio.h>
|
|
26
|
-
extern UInt64 g_NumIters_Tree;
|
|
27
|
-
extern UInt64 g_NumIters_Loop;
|
|
28
|
-
extern UInt64 g_NumIters_Bytes;
|
|
29
|
-
#define LOG_ITER(x) x
|
|
30
|
-
#else
|
|
31
|
-
#define LOG_ITER(x)
|
|
32
|
-
#endif
|
|
33
|
-
|
|
34
|
-
#define kMtHashBlockSize ((UInt32)1 << 17)
|
|
35
|
-
#define kMtHashNumBlocks (1 << 1)
|
|
36
|
-
|
|
37
|
-
#define GET_HASH_BLOCK_OFFSET(i) (((i) & (kMtHashNumBlocks - 1)) * kMtHashBlockSize)
|
|
38
|
-
|
|
39
|
-
#define kMtBtBlockSize ((UInt32)1 << 16)
|
|
40
|
-
#define kMtBtNumBlocks (1 << 4)
|
|
41
|
-
|
|
42
|
-
#define GET_BT_BLOCK_OFFSET(i) (((i) & (kMtBtNumBlocks - 1)) * (size_t)kMtBtBlockSize)
|
|
43
|
-
|
|
44
|
-
/*
|
|
45
|
-
HASH functions:
|
|
46
|
-
We use raw 8/16 bits from a[1] and a[2],
|
|
47
|
-
xored with crc(a[0]) and crc(a[3]).
|
|
48
|
-
We check a[0], a[3] only. We don't need to compare a[1] and a[2] in matches.
|
|
49
|
-
our crc() function provides one-to-one correspondence for low 8-bit values:
|
|
50
|
-
(crc[0...0xFF] & 0xFF) <-> [0...0xFF]
|
|
51
|
-
*/
|
|
52
|
-
|
|
53
|
-
#define MF(mt) ((mt)->MatchFinder)
|
|
54
|
-
#define MF_CRC (p->crc)
|
|
55
|
-
|
|
56
|
-
// #define MF(mt) (&(mt)->MatchFinder)
|
|
57
|
-
// #define MF_CRC (p->MatchFinder.crc)
|
|
58
|
-
|
|
59
|
-
#define MT_HASH2_CALC \
|
|
60
|
-
h2 = (MF_CRC[cur[0]] ^ cur[1]) & (kHash2Size - 1);
|
|
61
|
-
|
|
62
|
-
#define MT_HASH3_CALC { \
|
|
63
|
-
UInt32 temp = MF_CRC[cur[0]] ^ cur[1]; \
|
|
64
|
-
h2 = temp & (kHash2Size - 1); \
|
|
65
|
-
h3 = (temp ^ ((UInt32)cur[2] << 8)) & (kHash3Size - 1); }
|
|
66
|
-
|
|
67
|
-
/*
|
|
68
|
-
#define MT_HASH3_CALC__NO_2 { \
|
|
69
|
-
UInt32 temp = p->crc[cur[0]] ^ cur[1]; \
|
|
70
|
-
h3 = (temp ^ ((UInt32)cur[2] << 8)) & (kHash3Size - 1); }
|
|
71
|
-
|
|
72
|
-
#define MT_HASH4_CALC { \
|
|
73
|
-
UInt32 temp = p->crc[cur[0]] ^ cur[1]; \
|
|
74
|
-
h2 = temp & (kHash2Size - 1); \
|
|
75
|
-
temp ^= ((UInt32)cur[2] << 8); \
|
|
76
|
-
h3 = temp & (kHash3Size - 1); \
|
|
77
|
-
h4 = (temp ^ (p->crc[cur[3]] << kLzHash_CrcShift_1)) & p->hash4Mask; }
|
|
78
|
-
// (kHash4Size - 1);
|
|
79
|
-
*/
|
|
80
7
|
|
|
8
|
+
#include "LzFindMt.h"
|
|
81
9
|
|
|
82
|
-
Z7_NO_INLINE
|
|
83
10
|
static void MtSync_Construct(CMtSync *p)
|
|
84
11
|
{
|
|
85
|
-
p->affinityGroup = -1;
|
|
86
|
-
p->affinityInGroup = 0;
|
|
87
|
-
p->affinity = 0;
|
|
88
12
|
p->wasCreated = False;
|
|
89
13
|
p->csWasInitialized = False;
|
|
90
14
|
p->csWasEntered = False;
|
|
91
|
-
|
|
15
|
+
Thread_Construct(&p->thread);
|
|
92
16
|
Event_Construct(&p->canStart);
|
|
17
|
+
Event_Construct(&p->wasStarted);
|
|
93
18
|
Event_Construct(&p->wasStopped);
|
|
94
19
|
Semaphore_Construct(&p->freeSemaphore);
|
|
95
20
|
Semaphore_Construct(&p->filledSemaphore);
|
|
96
21
|
}
|
|
97
22
|
|
|
98
|
-
|
|
99
|
-
// #define DEBUG_BUFFER_LOCK // define it to debug lock state
|
|
100
|
-
|
|
101
|
-
#ifdef DEBUG_BUFFER_LOCK
|
|
102
|
-
#include <stdlib.h>
|
|
103
|
-
#define BUFFER_MUST_BE_LOCKED(p) if (!(p)->csWasEntered) exit(1);
|
|
104
|
-
#define BUFFER_MUST_BE_UNLOCKED(p) if ( (p)->csWasEntered) exit(1);
|
|
105
|
-
#else
|
|
106
|
-
#define BUFFER_MUST_BE_LOCKED(p)
|
|
107
|
-
#define BUFFER_MUST_BE_UNLOCKED(p)
|
|
108
|
-
#endif
|
|
109
|
-
|
|
110
|
-
#define LOCK_BUFFER(p) { \
|
|
111
|
-
BUFFER_MUST_BE_UNLOCKED(p); \
|
|
112
|
-
CriticalSection_Enter(&(p)->cs); \
|
|
113
|
-
(p)->csWasEntered = True; }
|
|
114
|
-
|
|
115
|
-
#define UNLOCK_BUFFER(p) { \
|
|
116
|
-
BUFFER_MUST_BE_LOCKED(p); \
|
|
117
|
-
CriticalSection_Leave(&(p)->cs); \
|
|
118
|
-
(p)->csWasEntered = False; }
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
Z7_NO_INLINE
|
|
122
|
-
static UInt32 MtSync_GetNextBlock(CMtSync *p)
|
|
23
|
+
static void MtSync_GetNextBlock(CMtSync *p)
|
|
123
24
|
{
|
|
124
|
-
UInt32 numBlocks = 0;
|
|
125
25
|
if (p->needStart)
|
|
126
26
|
{
|
|
127
|
-
BUFFER_MUST_BE_UNLOCKED(p)
|
|
128
27
|
p->numProcessedBlocks = 1;
|
|
129
28
|
p->needStart = False;
|
|
130
29
|
p->stopWriting = False;
|
|
131
30
|
p->exit = False;
|
|
31
|
+
Event_Reset(&p->wasStarted);
|
|
132
32
|
Event_Reset(&p->wasStopped);
|
|
33
|
+
|
|
133
34
|
Event_Set(&p->canStart);
|
|
35
|
+
Event_Wait(&p->wasStarted);
|
|
36
|
+
|
|
37
|
+
// if (mt) MatchFinder_Init_LowHash(mt->MatchFinder);
|
|
134
38
|
}
|
|
135
39
|
else
|
|
136
40
|
{
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
41
|
+
CriticalSection_Leave(&p->cs);
|
|
42
|
+
p->csWasEntered = False;
|
|
43
|
+
p->numProcessedBlocks++;
|
|
140
44
|
Semaphore_Release1(&p->freeSemaphore);
|
|
141
45
|
}
|
|
142
|
-
|
|
143
|
-
// buffer is UNLOCKED here
|
|
144
46
|
Semaphore_Wait(&p->filledSemaphore);
|
|
145
|
-
|
|
146
|
-
|
|
47
|
+
CriticalSection_Enter(&p->cs);
|
|
48
|
+
p->csWasEntered = True;
|
|
147
49
|
}
|
|
148
50
|
|
|
51
|
+
/* MtSync_StopWriting must be called if Writing was started */
|
|
149
52
|
|
|
150
|
-
/* if Writing (Processing) thread was started, we must call MtSync_StopWriting() */
|
|
151
|
-
|
|
152
|
-
Z7_NO_INLINE
|
|
153
53
|
static void MtSync_StopWriting(CMtSync *p)
|
|
154
54
|
{
|
|
55
|
+
UInt32 myNumBlocks = p->numProcessedBlocks;
|
|
155
56
|
if (!Thread_WasCreated(&p->thread) || p->needStart)
|
|
156
57
|
return;
|
|
157
|
-
|
|
158
|
-
PRF(printf("\nMtSync_StopWriting %p\n", p));
|
|
159
|
-
|
|
58
|
+
p->stopWriting = True;
|
|
160
59
|
if (p->csWasEntered)
|
|
161
60
|
{
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
And we restore default UNLOCKED state for stopped thread */
|
|
165
|
-
UNLOCK_BUFFER(p)
|
|
61
|
+
CriticalSection_Leave(&p->cs);
|
|
62
|
+
p->csWasEntered = False;
|
|
166
63
|
}
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
to free current block.
|
|
170
|
-
So the thread will see (p->stopWriting) at some
|
|
171
|
-
iteration after Wait(freeSemaphore).
|
|
172
|
-
The thread doesn't need to fill all avail free blocks,
|
|
173
|
-
so we can get fast thread stop.
|
|
174
|
-
*/
|
|
175
|
-
|
|
176
|
-
p->stopWriting = True;
|
|
177
|
-
Semaphore_Release1(&p->freeSemaphore); // check semaphore count !!!
|
|
178
|
-
|
|
179
|
-
PRF(printf("\nMtSync_StopWriting %p : Event_Wait(&p->wasStopped)\n", p));
|
|
64
|
+
Semaphore_Release1(&p->freeSemaphore);
|
|
65
|
+
|
|
180
66
|
Event_Wait(&p->wasStopped);
|
|
181
|
-
PRF(printf("\nMtSync_StopWriting %p : Event_Wait() finsihed\n", p));
|
|
182
|
-
|
|
183
|
-
/* 21.03 : we don't restore samaphore counters here.
|
|
184
|
-
We will recreate and reinit samaphores in next start */
|
|
185
67
|
|
|
68
|
+
while (myNumBlocks++ != p->numProcessedBlocks)
|
|
69
|
+
{
|
|
70
|
+
Semaphore_Wait(&p->filledSemaphore);
|
|
71
|
+
Semaphore_Release1(&p->freeSemaphore);
|
|
72
|
+
}
|
|
186
73
|
p->needStart = True;
|
|
187
74
|
}
|
|
188
75
|
|
|
189
|
-
|
|
190
|
-
Z7_NO_INLINE
|
|
191
76
|
static void MtSync_Destruct(CMtSync *p)
|
|
192
77
|
{
|
|
193
|
-
PRF(printf("\nMtSync_Destruct %p\n", p));
|
|
194
|
-
|
|
195
78
|
if (Thread_WasCreated(&p->thread))
|
|
196
79
|
{
|
|
197
|
-
/* we want thread to be in Stopped state before sending EXIT command.
|
|
198
|
-
note: stop(btSync) will stop (htSync) also */
|
|
199
80
|
MtSync_StopWriting(p);
|
|
200
|
-
/* thread in Stopped state here : (p->needStart == true) */
|
|
201
81
|
p->exit = True;
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
82
|
+
if (p->needStart)
|
|
83
|
+
Event_Set(&p->canStart);
|
|
84
|
+
Thread_Wait(&p->thread);
|
|
85
|
+
Thread_Close(&p->thread);
|
|
205
86
|
}
|
|
206
|
-
|
|
207
87
|
if (p->csWasInitialized)
|
|
208
88
|
{
|
|
209
89
|
CriticalSection_Delete(&p->cs);
|
|
210
90
|
p->csWasInitialized = False;
|
|
211
91
|
}
|
|
212
|
-
p->csWasEntered = False;
|
|
213
92
|
|
|
214
93
|
Event_Close(&p->canStart);
|
|
94
|
+
Event_Close(&p->wasStarted);
|
|
215
95
|
Event_Close(&p->wasStopped);
|
|
216
96
|
Semaphore_Close(&p->freeSemaphore);
|
|
217
97
|
Semaphore_Close(&p->filledSemaphore);
|
|
@@ -219,257 +99,80 @@ static void MtSync_Destruct(CMtSync *p)
|
|
|
219
99
|
p->wasCreated = False;
|
|
220
100
|
}
|
|
221
101
|
|
|
102
|
+
#define RINOK_THREAD(x) { if ((x) != 0) return SZ_ERROR_THREAD; }
|
|
222
103
|
|
|
223
|
-
|
|
224
|
-
// we want to get real system error codes here instead of SZ_ERROR_THREAD
|
|
225
|
-
#define RINOK_THREAD(x) RINOK_WRes(x)
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
// call it before each new file (when new starting is required):
|
|
229
|
-
Z7_NO_INLINE
|
|
230
|
-
static SRes MtSync_Init(CMtSync *p, UInt32 numBlocks)
|
|
231
|
-
{
|
|
232
|
-
WRes wres;
|
|
233
|
-
// BUFFER_MUST_BE_UNLOCKED(p)
|
|
234
|
-
if (!p->needStart || p->csWasEntered)
|
|
235
|
-
return SZ_ERROR_FAIL;
|
|
236
|
-
wres = Semaphore_OptCreateInit(&p->freeSemaphore, numBlocks, numBlocks);
|
|
237
|
-
if (wres == 0)
|
|
238
|
-
wres = Semaphore_OptCreateInit(&p->filledSemaphore, 0, numBlocks);
|
|
239
|
-
return MY_SRes_HRESULT_FROM_WRes(wres);
|
|
240
|
-
}
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
static WRes MtSync_Create_WRes(CMtSync *p, THREAD_FUNC_TYPE startAddress, void *obj)
|
|
104
|
+
static SRes MtSync_Create2(CMtSync *p, THREAD_FUNC_TYPE startAddress, void *obj, UInt32 numBlocks)
|
|
244
105
|
{
|
|
245
|
-
WRes wres;
|
|
246
|
-
|
|
247
106
|
if (p->wasCreated)
|
|
248
107
|
return SZ_OK;
|
|
249
108
|
|
|
250
|
-
RINOK_THREAD(CriticalSection_Init(&p->cs))
|
|
109
|
+
RINOK_THREAD(CriticalSection_Init(&p->cs));
|
|
251
110
|
p->csWasInitialized = True;
|
|
252
|
-
p->csWasEntered = False;
|
|
253
111
|
|
|
254
|
-
RINOK_THREAD(AutoResetEvent_CreateNotSignaled(&p->canStart))
|
|
255
|
-
RINOK_THREAD(AutoResetEvent_CreateNotSignaled(&p->
|
|
112
|
+
RINOK_THREAD(AutoResetEvent_CreateNotSignaled(&p->canStart));
|
|
113
|
+
RINOK_THREAD(AutoResetEvent_CreateNotSignaled(&p->wasStarted));
|
|
114
|
+
RINOK_THREAD(AutoResetEvent_CreateNotSignaled(&p->wasStopped));
|
|
115
|
+
|
|
116
|
+
RINOK_THREAD(Semaphore_Create(&p->freeSemaphore, numBlocks, numBlocks));
|
|
117
|
+
RINOK_THREAD(Semaphore_Create(&p->filledSemaphore, 0, numBlocks));
|
|
256
118
|
|
|
257
119
|
p->needStart = True;
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
// return ERROR_TOO_MANY_POSTS; // for debug
|
|
262
|
-
// return EINVAL; // for debug
|
|
263
|
-
|
|
264
|
-
#ifdef _WIN32
|
|
265
|
-
if (p->affinityGroup >= 0)
|
|
266
|
-
wres = Thread_Create_With_Group(&p->thread, startAddress, obj,
|
|
267
|
-
(unsigned)(UInt32)p->affinityGroup, (CAffinityMask)p->affinityInGroup);
|
|
268
|
-
else
|
|
269
|
-
#endif
|
|
270
|
-
if (p->affinity != 0)
|
|
271
|
-
wres = Thread_Create_With_Affinity(&p->thread, startAddress, obj, (CAffinityMask)p->affinity);
|
|
272
|
-
else
|
|
273
|
-
wres = Thread_Create(&p->thread, startAddress, obj);
|
|
274
|
-
|
|
275
|
-
RINOK_THREAD(wres)
|
|
120
|
+
|
|
121
|
+
RINOK_THREAD(Thread_Create(&p->thread, startAddress, obj));
|
|
276
122
|
p->wasCreated = True;
|
|
277
123
|
return SZ_OK;
|
|
278
124
|
}
|
|
279
125
|
|
|
280
|
-
|
|
281
|
-
Z7_NO_INLINE
|
|
282
|
-
static SRes MtSync_Create(CMtSync *p, THREAD_FUNC_TYPE startAddress, void *obj)
|
|
126
|
+
static SRes MtSync_Create(CMtSync *p, THREAD_FUNC_TYPE startAddress, void *obj, UInt32 numBlocks)
|
|
283
127
|
{
|
|
284
|
-
|
|
285
|
-
if (
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
return MY_SRes_HRESULT_FROM_WRes(wres);
|
|
128
|
+
SRes res = MtSync_Create2(p, startAddress, obj, numBlocks);
|
|
129
|
+
if (res != SZ_OK)
|
|
130
|
+
MtSync_Destruct(p);
|
|
131
|
+
return res;
|
|
289
132
|
}
|
|
290
133
|
|
|
291
|
-
|
|
292
|
-
// ---------- HASH THREAD ----------
|
|
134
|
+
void MtSync_Init(CMtSync *p) { p->needStart = True; }
|
|
293
135
|
|
|
294
136
|
#define kMtMaxValForNormalize 0xFFFFFFFF
|
|
295
|
-
// #define kMtMaxValForNormalize ((1 << 21)) // for debug
|
|
296
|
-
// #define kNormalizeAlign (1 << 7) // alignment for speculated accesses
|
|
297
|
-
|
|
298
|
-
#ifdef MY_CPU_LE_UNALIGN
|
|
299
|
-
#define GetUi24hi_from32(p) ((UInt32)GetUi32(p) >> 8)
|
|
300
|
-
#else
|
|
301
|
-
#define GetUi24hi_from32(p) ((p)[1] ^ ((UInt32)(p)[2] << 8) ^ ((UInt32)(p)[3] << 16))
|
|
302
|
-
#endif
|
|
303
|
-
|
|
304
|
-
#define GetHeads_DECL(name) \
|
|
305
|
-
static void GetHeads ## name(const Byte *p, UInt32 pos, \
|
|
306
|
-
UInt32 *hash, UInt32 hashMask, UInt32 *heads, UInt32 numHeads, const UInt32 *crc)
|
|
307
|
-
|
|
308
|
-
#define GetHeads_LOOP(v) \
|
|
309
|
-
for (; numHeads != 0; numHeads--) { \
|
|
310
|
-
const UInt32 value = (v); \
|
|
311
|
-
p++; \
|
|
312
|
-
*heads++ = pos - hash[value]; \
|
|
313
|
-
hash[value] = pos++; }
|
|
314
137
|
|
|
315
138
|
#define DEF_GetHeads2(name, v, action) \
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
139
|
+
static void GetHeads ## name(const Byte *p, UInt32 pos, \
|
|
140
|
+
UInt32 *hash, UInt32 hashMask, UInt32 *heads, UInt32 numHeads, const UInt32 *crc) \
|
|
141
|
+
{ action; for (; numHeads != 0; numHeads--) { \
|
|
142
|
+
const UInt32 value = (v); p++; *heads++ = pos - hash[value]; hash[value] = pos++; } }
|
|
320
143
|
|
|
321
|
-
|
|
322
|
-
DEF_GetHeads(3, (crc[p[0]] ^ GetUi16(p + 1)) & hashMask)
|
|
323
|
-
DEF_GetHeads2(3b, GetUi16(p) ^ ((UInt32)(p)[2] << 16), UNUSED_VAR(hashMask); UNUSED_VAR(crc); )
|
|
324
|
-
// BT3 is not good for crc collisions for big hashMask values.
|
|
325
|
-
|
|
326
|
-
/*
|
|
327
|
-
GetHeads_DECL(3b)
|
|
328
|
-
{
|
|
329
|
-
UNUSED_VAR(hashMask);
|
|
330
|
-
UNUSED_VAR(crc);
|
|
331
|
-
{
|
|
332
|
-
const Byte *pLim = p + numHeads;
|
|
333
|
-
if (numHeads == 0)
|
|
334
|
-
return;
|
|
335
|
-
pLim--;
|
|
336
|
-
while (p < pLim)
|
|
337
|
-
{
|
|
338
|
-
UInt32 v1 = GetUi32(p);
|
|
339
|
-
UInt32 v0 = v1 & 0xFFFFFF;
|
|
340
|
-
UInt32 h0, h1;
|
|
341
|
-
p += 2;
|
|
342
|
-
v1 >>= 8;
|
|
343
|
-
h0 = hash[v0]; hash[v0] = pos; heads[0] = pos - h0; pos++;
|
|
344
|
-
h1 = hash[v1]; hash[v1] = pos; heads[1] = pos - h1; pos++;
|
|
345
|
-
heads += 2;
|
|
346
|
-
}
|
|
347
|
-
if (p == pLim)
|
|
348
|
-
{
|
|
349
|
-
UInt32 v0 = GetUi16(p) ^ ((UInt32)(p)[2] << 16);
|
|
350
|
-
*heads = pos - hash[v0];
|
|
351
|
-
hash[v0] = pos;
|
|
352
|
-
}
|
|
353
|
-
}
|
|
354
|
-
}
|
|
355
|
-
*/
|
|
356
|
-
|
|
357
|
-
/*
|
|
358
|
-
GetHeads_DECL(4)
|
|
359
|
-
{
|
|
360
|
-
unsigned sh = 0;
|
|
361
|
-
UNUSED_VAR(crc)
|
|
362
|
-
while ((hashMask & 0x80000000) == 0)
|
|
363
|
-
{
|
|
364
|
-
hashMask <<= 1;
|
|
365
|
-
sh++;
|
|
366
|
-
}
|
|
367
|
-
GetHeads_LOOP((GetUi32(p) * 0xa54a1) >> sh)
|
|
368
|
-
}
|
|
369
|
-
#define GetHeads4b GetHeads4
|
|
370
|
-
*/
|
|
371
|
-
|
|
372
|
-
#define USE_GetHeads_LOCAL_CRC
|
|
373
|
-
|
|
374
|
-
#ifdef USE_GetHeads_LOCAL_CRC
|
|
375
|
-
|
|
376
|
-
GetHeads_DECL(4)
|
|
377
|
-
{
|
|
378
|
-
UInt32 crc0[256];
|
|
379
|
-
UInt32 crc1[256];
|
|
380
|
-
{
|
|
381
|
-
unsigned i;
|
|
382
|
-
for (i = 0; i < 256; i++)
|
|
383
|
-
{
|
|
384
|
-
UInt32 v = crc[i];
|
|
385
|
-
crc0[i] = v & hashMask;
|
|
386
|
-
crc1[i] = (v << kLzHash_CrcShift_1) & hashMask;
|
|
387
|
-
// crc1[i] = rotlFixed(v, 8) & hashMask;
|
|
388
|
-
}
|
|
389
|
-
}
|
|
390
|
-
GetHeads_LOOP(crc0[p[0]] ^ crc1[p[3]] ^ (UInt32)GetUi16(p+1))
|
|
391
|
-
}
|
|
392
|
-
|
|
393
|
-
GetHeads_DECL(4b)
|
|
394
|
-
{
|
|
395
|
-
UInt32 crc0[256];
|
|
396
|
-
{
|
|
397
|
-
unsigned i;
|
|
398
|
-
for (i = 0; i < 256; i++)
|
|
399
|
-
crc0[i] = crc[i] & hashMask;
|
|
400
|
-
}
|
|
401
|
-
GetHeads_LOOP(crc0[p[0]] ^ GetUi24hi_from32(p))
|
|
402
|
-
}
|
|
403
|
-
|
|
404
|
-
GetHeads_DECL(5)
|
|
405
|
-
{
|
|
406
|
-
UInt32 crc0[256];
|
|
407
|
-
UInt32 crc1[256];
|
|
408
|
-
UInt32 crc2[256];
|
|
409
|
-
{
|
|
410
|
-
unsigned i;
|
|
411
|
-
for (i = 0; i < 256; i++)
|
|
412
|
-
{
|
|
413
|
-
UInt32 v = crc[i];
|
|
414
|
-
crc0[i] = v & hashMask;
|
|
415
|
-
crc1[i] = (v << kLzHash_CrcShift_1) & hashMask;
|
|
416
|
-
crc2[i] = (v << kLzHash_CrcShift_2) & hashMask;
|
|
417
|
-
}
|
|
418
|
-
}
|
|
419
|
-
GetHeads_LOOP(crc0[p[0]] ^ crc1[p[3]] ^ crc2[p[4]] ^ (UInt32)GetUi16(p+1))
|
|
420
|
-
}
|
|
421
|
-
|
|
422
|
-
GetHeads_DECL(5b)
|
|
423
|
-
{
|
|
424
|
-
UInt32 crc0[256];
|
|
425
|
-
UInt32 crc1[256];
|
|
426
|
-
{
|
|
427
|
-
unsigned i;
|
|
428
|
-
for (i = 0; i < 256; i++)
|
|
429
|
-
{
|
|
430
|
-
UInt32 v = crc[i];
|
|
431
|
-
crc0[i] = v & hashMask;
|
|
432
|
-
crc1[i] = (v << kLzHash_CrcShift_1) & hashMask;
|
|
433
|
-
}
|
|
434
|
-
}
|
|
435
|
-
GetHeads_LOOP(crc0[p[0]] ^ crc1[p[4]] ^ GetUi24hi_from32(p))
|
|
436
|
-
}
|
|
437
|
-
|
|
438
|
-
#else
|
|
439
|
-
|
|
440
|
-
DEF_GetHeads(4, (crc[p[0]] ^ (crc[p[3]] << kLzHash_CrcShift_1) ^ (UInt32)GetUi16(p+1)) & hashMask)
|
|
441
|
-
DEF_GetHeads(4b, (crc[p[0]] ^ GetUi24hi_from32(p)) & hashMask)
|
|
442
|
-
DEF_GetHeads(5, (crc[p[0]] ^ (crc[p[3]] << kLzHash_CrcShift_1) ^ (crc[p[4]] << kLzHash_CrcShift_2) ^ (UInt32)GetUi16(p + 1)) & hashMask)
|
|
443
|
-
DEF_GetHeads(5b, (crc[p[0]] ^ (crc[p[4]] << kLzHash_CrcShift_1) ^ GetUi24hi_from32(p)) & hashMask)
|
|
144
|
+
#define DEF_GetHeads(name, v) DEF_GetHeads2(name, v, ;)
|
|
444
145
|
|
|
445
|
-
|
|
446
|
-
|
|
146
|
+
DEF_GetHeads2(2, (p[0] | ((UInt32)p[1] << 8)), UNUSED_VAR(hashMask); UNUSED_VAR(crc); )
|
|
147
|
+
DEF_GetHeads(3, (crc[p[0]] ^ p[1] ^ ((UInt32)p[2] << 8)) & hashMask)
|
|
148
|
+
DEF_GetHeads(4, (crc[p[0]] ^ p[1] ^ ((UInt32)p[2] << 8) ^ (crc[p[3]] << 5)) & hashMask)
|
|
149
|
+
DEF_GetHeads(4b, (crc[p[0]] ^ p[1] ^ ((UInt32)p[2] << 8) ^ ((UInt32)p[3] << 16)) & hashMask)
|
|
150
|
+
/* DEF_GetHeads(5, (crc[p[0]] ^ p[1] ^ ((UInt32)p[2] << 8) ^ (crc[p[3]] << 5) ^ (crc[p[4]] << 3)) & hashMask) */
|
|
447
151
|
|
|
448
152
|
static void HashThreadFunc(CMatchFinderMt *mt)
|
|
449
153
|
{
|
|
450
154
|
CMtSync *p = &mt->hashSync;
|
|
451
|
-
PRF(printf("\nHashThreadFunc\n"));
|
|
452
|
-
|
|
453
155
|
for (;;)
|
|
454
156
|
{
|
|
455
|
-
UInt32
|
|
456
|
-
PRF(printf("\nHashThreadFunc : Event_Wait(&p->canStart)\n"));
|
|
157
|
+
UInt32 numProcessedBlocks = 0;
|
|
457
158
|
Event_Wait(&p->canStart);
|
|
458
|
-
|
|
459
|
-
if (p->exit)
|
|
460
|
-
{
|
|
461
|
-
PRF(printf("\nHashThreadFunc : exit \n"));
|
|
462
|
-
return;
|
|
463
|
-
}
|
|
159
|
+
Event_Set(&p->wasStarted);
|
|
464
160
|
|
|
465
|
-
MatchFinder_Init_HighHash(
|
|
161
|
+
MatchFinder_Init_HighHash(mt->MatchFinder);
|
|
466
162
|
|
|
467
163
|
for (;;)
|
|
468
164
|
{
|
|
469
|
-
|
|
165
|
+
if (p->exit)
|
|
166
|
+
return;
|
|
167
|
+
if (p->stopWriting)
|
|
168
|
+
{
|
|
169
|
+
p->numProcessedBlocks = numProcessedBlocks;
|
|
170
|
+
Event_Set(&p->wasStopped);
|
|
171
|
+
break;
|
|
172
|
+
}
|
|
470
173
|
|
|
471
174
|
{
|
|
472
|
-
CMatchFinder *mf =
|
|
175
|
+
CMatchFinder *mf = mt->MatchFinder;
|
|
473
176
|
if (MatchFinder_NeedMove(mf))
|
|
474
177
|
{
|
|
475
178
|
CriticalSection_Enter(&mt->btSync.cs);
|
|
@@ -482,178 +185,194 @@ static void HashThreadFunc(CMatchFinderMt *mt)
|
|
|
482
185
|
mt->pointerToCurPos -= offset;
|
|
483
186
|
mt->buffer -= offset;
|
|
484
187
|
}
|
|
485
|
-
CriticalSection_Leave(&mt->hashSync.cs);
|
|
486
188
|
CriticalSection_Leave(&mt->btSync.cs);
|
|
189
|
+
CriticalSection_Leave(&mt->hashSync.cs);
|
|
487
190
|
continue;
|
|
488
191
|
}
|
|
489
192
|
|
|
490
193
|
Semaphore_Wait(&p->freeSemaphore);
|
|
491
194
|
|
|
492
|
-
if (p->exit) // exit is unexpected here. But we check it here for some failure case
|
|
493
|
-
return;
|
|
494
|
-
|
|
495
|
-
// for faster stop : we check (p->stopWriting) after Wait(freeSemaphore)
|
|
496
|
-
if (p->stopWriting)
|
|
497
|
-
break;
|
|
498
|
-
|
|
499
195
|
MatchFinder_ReadIfRequired(mf);
|
|
196
|
+
if (mf->pos > (kMtMaxValForNormalize - kMtHashBlockSize))
|
|
197
|
+
{
|
|
198
|
+
UInt32 subValue = (mf->pos - mf->historySize - 1);
|
|
199
|
+
MatchFinder_ReduceOffsets(mf, subValue);
|
|
200
|
+
MatchFinder_Normalize3(subValue, mf->hash + mf->fixedHashSize, (size_t)mf->hashMask + 1);
|
|
201
|
+
}
|
|
500
202
|
{
|
|
501
|
-
UInt32 *heads = mt->hashBuf +
|
|
502
|
-
UInt32 num =
|
|
203
|
+
UInt32 *heads = mt->hashBuf + ((numProcessedBlocks++) & kMtHashNumBlocksMask) * kMtHashBlockSize;
|
|
204
|
+
UInt32 num = mf->streamPos - mf->pos;
|
|
503
205
|
heads[0] = 2;
|
|
504
206
|
heads[1] = num;
|
|
505
|
-
|
|
506
|
-
/* heads[1] contains the number of avail bytes:
|
|
507
|
-
if (avail < mf->numHashBytes) :
|
|
508
|
-
{
|
|
509
|
-
it means that stream was finished
|
|
510
|
-
HASH_THREAD and BT_TREAD must move position for heads[1] (avail) bytes.
|
|
511
|
-
HASH_THREAD doesn't stop,
|
|
512
|
-
HASH_THREAD fills only the header (2 numbers) for all next blocks:
|
|
513
|
-
{2, NumHashBytes - 1}, {2,0}, {2,0}, ... , {2,0}
|
|
514
|
-
}
|
|
515
|
-
else
|
|
516
|
-
{
|
|
517
|
-
HASH_THREAD and BT_TREAD must move position for (heads[0] - 2) bytes;
|
|
518
|
-
}
|
|
519
|
-
*/
|
|
520
|
-
|
|
521
207
|
if (num >= mf->numHashBytes)
|
|
522
208
|
{
|
|
523
209
|
num = num - mf->numHashBytes + 1;
|
|
524
210
|
if (num > kMtHashBlockSize - 2)
|
|
525
211
|
num = kMtHashBlockSize - 2;
|
|
526
|
-
|
|
527
|
-
if (mf->pos > (UInt32)kMtMaxValForNormalize - num)
|
|
528
|
-
{
|
|
529
|
-
const UInt32 subValue = (mf->pos - mf->historySize - 1); // & ~(UInt32)(kNormalizeAlign - 1);
|
|
530
|
-
MatchFinder_REDUCE_OFFSETS(mf, subValue)
|
|
531
|
-
MatchFinder_Normalize3(subValue, mf->hash + mf->fixedHashSize, (size_t)mf->hashMask + 1);
|
|
532
|
-
}
|
|
533
|
-
|
|
534
|
-
heads[0] = 2 + num;
|
|
535
212
|
mt->GetHeadsFunc(mf->buffer, mf->pos, mf->hash + mf->fixedHashSize, mf->hashMask, heads + 2, num, mf->crc);
|
|
213
|
+
heads[0] = 2 + num;
|
|
536
214
|
}
|
|
537
|
-
|
|
538
|
-
mf->pos += num; // wrap over zero is allowed at the end of stream
|
|
215
|
+
mf->pos += num;
|
|
539
216
|
mf->buffer += num;
|
|
540
217
|
}
|
|
541
218
|
}
|
|
542
219
|
|
|
543
220
|
Semaphore_Release1(&p->filledSemaphore);
|
|
544
|
-
}
|
|
545
|
-
|
|
546
|
-
// p->numBlocks_Sent = blockIndex;
|
|
547
|
-
Event_Set(&p->wasStopped);
|
|
548
|
-
} // for() thread end
|
|
221
|
+
}
|
|
222
|
+
}
|
|
549
223
|
}
|
|
550
224
|
|
|
225
|
+
static void MatchFinderMt_GetNextBlock_Hash(CMatchFinderMt *p)
|
|
226
|
+
{
|
|
227
|
+
MtSync_GetNextBlock(&p->hashSync);
|
|
228
|
+
p->hashBufPosLimit = p->hashBufPos = ((p->hashSync.numProcessedBlocks - 1) & kMtHashNumBlocksMask) * kMtHashBlockSize;
|
|
229
|
+
p->hashBufPosLimit += p->hashBuf[p->hashBufPos++];
|
|
230
|
+
p->hashNumAvail = p->hashBuf[p->hashBufPos++];
|
|
231
|
+
}
|
|
551
232
|
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
// ---------- BT THREAD ----------
|
|
555
|
-
|
|
556
|
-
/* we use one variable instead of two (cyclicBufferPos == pos) before CyclicBuf wrap.
|
|
557
|
-
here we define fixed offset of (p->pos) from (p->cyclicBufferPos) */
|
|
558
|
-
#define CYC_TO_POS_OFFSET 0
|
|
559
|
-
// #define CYC_TO_POS_OFFSET 1 // for debug
|
|
233
|
+
#define kEmptyHashValue 0
|
|
560
234
|
|
|
561
235
|
#define MFMT_GM_INLINE
|
|
562
236
|
|
|
563
237
|
#ifdef MFMT_GM_INLINE
|
|
564
238
|
|
|
565
239
|
/*
|
|
566
|
-
we use size_t for
|
|
240
|
+
we use size_t for _cyclicBufferPos instead of UInt32
|
|
567
241
|
to eliminate "movsx" BUG in old MSVC x64 compiler.
|
|
568
242
|
*/
|
|
569
243
|
|
|
244
|
+
MY_NO_INLINE
|
|
245
|
+
static UInt32 *GetMatchesSpecN(UInt32 lenLimit, UInt32 pos, const Byte *cur, CLzRef *son,
|
|
246
|
+
size_t _cyclicBufferPos, UInt32 _cyclicBufferSize, UInt32 _cutValue,
|
|
247
|
+
UInt32 *distances, UInt32 _maxLen, const UInt32 *hash, const UInt32 *limit, UInt32 size, UInt32 *posRes)
|
|
248
|
+
{
|
|
249
|
+
do
|
|
250
|
+
{
|
|
251
|
+
UInt32 *_distances = ++distances;
|
|
252
|
+
UInt32 delta = *hash++;
|
|
253
|
+
|
|
254
|
+
CLzRef *ptr0 = son + ((size_t)_cyclicBufferPos << 1) + 1;
|
|
255
|
+
CLzRef *ptr1 = son + ((size_t)_cyclicBufferPos << 1);
|
|
256
|
+
unsigned len0 = 0, len1 = 0;
|
|
257
|
+
UInt32 cutValue = _cutValue;
|
|
258
|
+
unsigned maxLen = (unsigned)_maxLen;
|
|
570
259
|
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
UInt32 *
|
|
260
|
+
/*
|
|
261
|
+
if (size > 1)
|
|
262
|
+
{
|
|
263
|
+
UInt32 delta = *hash;
|
|
264
|
+
if (delta < _cyclicBufferSize)
|
|
265
|
+
{
|
|
266
|
+
UInt32 cyc1 = _cyclicBufferPos + 1;
|
|
267
|
+
CLzRef *pair = son + ((size_t)(cyc1 - delta + ((delta > cyc1) ? _cyclicBufferSize : 0)) << 1);
|
|
268
|
+
Byte b = *(cur + 1 - delta);
|
|
269
|
+
_distances[0] = pair[0];
|
|
270
|
+
_distances[1] = b;
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
*/
|
|
274
|
+
if (cutValue == 0 || delta >= _cyclicBufferSize)
|
|
275
|
+
{
|
|
276
|
+
*ptr0 = *ptr1 = kEmptyHashValue;
|
|
277
|
+
}
|
|
278
|
+
else
|
|
279
|
+
for(;;)
|
|
280
|
+
{
|
|
281
|
+
{
|
|
282
|
+
CLzRef *pair = son + ((size_t)(_cyclicBufferPos - delta + ((_cyclicBufferPos < delta) ? _cyclicBufferSize : 0)) << 1);
|
|
283
|
+
const Byte *pb = cur - delta;
|
|
284
|
+
unsigned len = (len0 < len1 ? len0 : len1);
|
|
285
|
+
UInt32 pair0 = *pair;
|
|
286
|
+
if (pb[len] == cur[len])
|
|
287
|
+
{
|
|
288
|
+
if (++len != lenLimit && pb[len] == cur[len])
|
|
289
|
+
while (++len != lenLimit)
|
|
290
|
+
if (pb[len] != cur[len])
|
|
291
|
+
break;
|
|
292
|
+
if (maxLen < len)
|
|
293
|
+
{
|
|
294
|
+
maxLen = len;
|
|
295
|
+
*distances++ = (UInt32)len;
|
|
296
|
+
*distances++ = delta - 1;
|
|
297
|
+
if (len == lenLimit)
|
|
298
|
+
{
|
|
299
|
+
UInt32 pair1 = pair[1];
|
|
300
|
+
*ptr1 = pair0;
|
|
301
|
+
*ptr0 = pair1;
|
|
302
|
+
break;
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
{
|
|
307
|
+
UInt32 curMatch = pos - delta;
|
|
308
|
+
// delta = pos - *pair;
|
|
309
|
+
// delta = pos - pair[((UInt32)pb[len] - (UInt32)cur[len]) >> 31];
|
|
310
|
+
if (pb[len] < cur[len])
|
|
311
|
+
{
|
|
312
|
+
delta = pos - pair[1];
|
|
313
|
+
*ptr1 = curMatch;
|
|
314
|
+
ptr1 = pair + 1;
|
|
315
|
+
len1 = len;
|
|
316
|
+
}
|
|
317
|
+
else
|
|
318
|
+
{
|
|
319
|
+
delta = pos - *pair;
|
|
320
|
+
*ptr0 = curMatch;
|
|
321
|
+
ptr0 = pair;
|
|
322
|
+
len0 = len;
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
if (--cutValue == 0 || delta >= _cyclicBufferSize)
|
|
327
|
+
{
|
|
328
|
+
*ptr0 = *ptr1 = kEmptyHashValue;
|
|
329
|
+
break;
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
pos++;
|
|
333
|
+
_cyclicBufferPos++;
|
|
334
|
+
cur++;
|
|
335
|
+
{
|
|
336
|
+
UInt32 num = (UInt32)(distances - _distances);
|
|
337
|
+
_distances[-1] = num;
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
while (distances < limit && --size != 0);
|
|
341
|
+
*posRes = pos;
|
|
342
|
+
return distances;
|
|
343
|
+
}
|
|
575
344
|
|
|
576
345
|
#endif
|
|
577
346
|
|
|
578
347
|
|
|
579
|
-
|
|
348
|
+
|
|
349
|
+
static void BtGetMatches(CMatchFinderMt *p, UInt32 *distances)
|
|
580
350
|
{
|
|
581
351
|
UInt32 numProcessed = 0;
|
|
582
352
|
UInt32 curPos = 2;
|
|
353
|
+
UInt32 limit = kMtBtBlockSize - (p->matchMaxLen * 2); // * 2
|
|
583
354
|
|
|
584
|
-
|
|
585
|
-
in [len, dist] match pairs, if (p->numHashBytes >= 2)
|
|
586
|
-
Also we suppose here that (matchMaxLen >= 2).
|
|
587
|
-
So the following code for (reserve) is not required
|
|
588
|
-
UInt32 reserve = (p->matchMaxLen * 2);
|
|
589
|
-
const UInt32 kNumHashBytes_Max = 5; // BT_HASH_BYTES_MAX
|
|
590
|
-
if (reserve < kNumHashBytes_Max - 1)
|
|
591
|
-
reserve = kNumHashBytes_Max - 1;
|
|
592
|
-
const UInt32 limit = kMtBtBlockSize - (reserve);
|
|
593
|
-
*/
|
|
594
|
-
|
|
595
|
-
const UInt32 limit = kMtBtBlockSize - (p->matchMaxLen * 2);
|
|
596
|
-
|
|
597
|
-
d[1] = p->hashNumAvail;
|
|
598
|
-
|
|
599
|
-
if (p->failure_BT)
|
|
600
|
-
{
|
|
601
|
-
// printf("\n == 1 BtGetMatches() p->failure_BT\n");
|
|
602
|
-
d[0] = 0;
|
|
603
|
-
// d[1] = 0;
|
|
604
|
-
return;
|
|
605
|
-
}
|
|
355
|
+
distances[1] = p->hashNumAvail;
|
|
606
356
|
|
|
607
357
|
while (curPos < limit)
|
|
608
358
|
{
|
|
609
359
|
if (p->hashBufPos == p->hashBufPosLimit)
|
|
610
360
|
{
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
const UInt32 bi = MtSync_GetNextBlock(&p->hashSync);
|
|
615
|
-
const UInt32 k = GET_HASH_BLOCK_OFFSET(bi);
|
|
616
|
-
const UInt32 *h = p->hashBuf + k;
|
|
617
|
-
avail = h[1];
|
|
618
|
-
p->hashBufPosLimit = k + h[0];
|
|
619
|
-
p->hashNumAvail = avail;
|
|
620
|
-
p->hashBufPos = k + 2;
|
|
621
|
-
}
|
|
622
|
-
|
|
623
|
-
{
|
|
624
|
-
/* we must prevent UInt32 overflow for avail total value,
|
|
625
|
-
if avail was increased with new hash block */
|
|
626
|
-
UInt32 availSum = numProcessed + avail;
|
|
627
|
-
if (availSum < numProcessed)
|
|
628
|
-
availSum = (UInt32)(Int32)-1;
|
|
629
|
-
d[1] = availSum;
|
|
630
|
-
}
|
|
631
|
-
|
|
632
|
-
if (avail >= p->numHashBytes)
|
|
361
|
+
MatchFinderMt_GetNextBlock_Hash(p);
|
|
362
|
+
distances[1] = numProcessed + p->hashNumAvail;
|
|
363
|
+
if (p->hashNumAvail >= p->numHashBytes)
|
|
633
364
|
continue;
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
It means that stream was finished.
|
|
639
|
-
And (avail) - is a number of remaining bytes,
|
|
640
|
-
we fill (d) for (avail) bytes for LZ_THREAD (receiver).
|
|
641
|
-
but we don't update (p->pos) and (p->cyclicBufferPos) here in BT_THREAD */
|
|
642
|
-
|
|
643
|
-
/* here we suppose that we have space enough:
|
|
644
|
-
(kMtBtBlockSize - curPos >= p->hashNumAvail) */
|
|
645
|
-
p->hashNumAvail = 0;
|
|
646
|
-
d[0] = curPos + avail;
|
|
647
|
-
d += curPos;
|
|
648
|
-
for (; avail != 0; avail--)
|
|
649
|
-
*d++ = 0;
|
|
365
|
+
distances[0] = curPos + p->hashNumAvail;
|
|
366
|
+
distances += curPos;
|
|
367
|
+
for (; p->hashNumAvail != 0; p->hashNumAvail--)
|
|
368
|
+
*distances++ = 0;
|
|
650
369
|
return;
|
|
651
370
|
}
|
|
652
371
|
{
|
|
653
372
|
UInt32 size = p->hashBufPosLimit - p->hashBufPos;
|
|
373
|
+
UInt32 lenLimit = p->matchMaxLen;
|
|
654
374
|
UInt32 pos = p->pos;
|
|
655
375
|
UInt32 cyclicBufferPos = p->cyclicBufferPos;
|
|
656
|
-
UInt32 lenLimit = p->matchMaxLen;
|
|
657
376
|
if (lenLimit >= p->hashNumAvail)
|
|
658
377
|
lenLimit = p->hashNumAvail;
|
|
659
378
|
{
|
|
@@ -665,18 +384,10 @@ static void BtGetMatches(CMatchFinderMt *p, UInt32 *d)
|
|
|
665
384
|
size = size2;
|
|
666
385
|
}
|
|
667
386
|
|
|
668
|
-
if (pos > (UInt32)kMtMaxValForNormalize - size)
|
|
669
|
-
{
|
|
670
|
-
const UInt32 subValue = (pos - p->cyclicBufferSize); // & ~(UInt32)(kNormalizeAlign - 1);
|
|
671
|
-
pos -= subValue;
|
|
672
|
-
p->pos = pos;
|
|
673
|
-
MatchFinder_Normalize3(subValue, p->son, (size_t)p->cyclicBufferSize * 2);
|
|
674
|
-
}
|
|
675
|
-
|
|
676
387
|
#ifndef MFMT_GM_INLINE
|
|
677
388
|
while (curPos < limit && size-- != 0)
|
|
678
389
|
{
|
|
679
|
-
UInt32 *startDistances =
|
|
390
|
+
UInt32 *startDistances = distances + curPos;
|
|
680
391
|
UInt32 num = (UInt32)(GetMatchesSpec1(lenLimit, pos - p->hashBuf[p->hashBufPos++],
|
|
681
392
|
pos, p->buffer, p->son, cyclicBufferPos, p->cyclicBufferSize, p->cutValue,
|
|
682
393
|
startDistances + 1, p->numHashBytes - 1) - startDistances);
|
|
@@ -688,112 +399,81 @@ static void BtGetMatches(CMatchFinderMt *p, UInt32 *d)
|
|
|
688
399
|
}
|
|
689
400
|
#else
|
|
690
401
|
{
|
|
691
|
-
UInt32 posRes
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
&posRes);
|
|
701
|
-
}
|
|
702
|
-
{
|
|
703
|
-
if (!d_end)
|
|
704
|
-
{
|
|
705
|
-
// printf("\n == 2 BtGetMatches() p->failure_BT\n");
|
|
706
|
-
// internal data failure
|
|
707
|
-
p->failure_BT = True;
|
|
708
|
-
d[0] = 0;
|
|
709
|
-
// d[1] = 0;
|
|
710
|
-
return;
|
|
711
|
-
}
|
|
712
|
-
}
|
|
713
|
-
curPos = (UInt32)(d_end - d);
|
|
714
|
-
{
|
|
715
|
-
const UInt32 processed = posRes - pos;
|
|
716
|
-
pos = posRes;
|
|
717
|
-
p->hashBufPos += processed;
|
|
718
|
-
cyclicBufferPos += processed;
|
|
719
|
-
p->buffer += processed;
|
|
720
|
-
}
|
|
402
|
+
UInt32 posRes;
|
|
403
|
+
curPos = (UInt32)(GetMatchesSpecN(lenLimit, pos, p->buffer, p->son, cyclicBufferPos, p->cyclicBufferSize, p->cutValue,
|
|
404
|
+
distances + curPos, p->numHashBytes - 1, p->hashBuf + p->hashBufPos,
|
|
405
|
+
distances + limit,
|
|
406
|
+
size, &posRes) - distances);
|
|
407
|
+
p->hashBufPos += posRes - pos;
|
|
408
|
+
cyclicBufferPos += posRes - pos;
|
|
409
|
+
p->buffer += posRes - pos;
|
|
410
|
+
pos = posRes;
|
|
721
411
|
}
|
|
722
412
|
#endif
|
|
723
413
|
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
p->hashNumAvail -= processed;
|
|
728
|
-
p->pos = pos;
|
|
729
|
-
}
|
|
414
|
+
numProcessed += pos - p->pos;
|
|
415
|
+
p->hashNumAvail -= pos - p->pos;
|
|
416
|
+
p->pos = pos;
|
|
730
417
|
if (cyclicBufferPos == p->cyclicBufferSize)
|
|
731
418
|
cyclicBufferPos = 0;
|
|
732
419
|
p->cyclicBufferPos = cyclicBufferPos;
|
|
733
420
|
}
|
|
734
421
|
}
|
|
735
422
|
|
|
736
|
-
|
|
423
|
+
distances[0] = curPos;
|
|
737
424
|
}
|
|
738
425
|
|
|
739
|
-
|
|
740
426
|
static void BtFillBlock(CMatchFinderMt *p, UInt32 globalBlockIndex)
|
|
741
427
|
{
|
|
742
428
|
CMtSync *sync = &p->hashSync;
|
|
743
|
-
|
|
744
|
-
BUFFER_MUST_BE_UNLOCKED(sync)
|
|
745
|
-
|
|
746
429
|
if (!sync->needStart)
|
|
747
430
|
{
|
|
748
|
-
|
|
431
|
+
CriticalSection_Enter(&sync->cs);
|
|
432
|
+
sync->csWasEntered = True;
|
|
749
433
|
}
|
|
750
434
|
|
|
751
|
-
BtGetMatches(p, p->btBuf +
|
|
752
|
-
|
|
753
|
-
/* We suppose that we have called GetNextBlock() from start.
|
|
754
|
-
So buffer is LOCKED */
|
|
435
|
+
BtGetMatches(p, p->btBuf + (globalBlockIndex & kMtBtNumBlocksMask) * kMtBtBlockSize);
|
|
755
436
|
|
|
756
|
-
|
|
757
|
-
|
|
437
|
+
if (p->pos > kMtMaxValForNormalize - kMtBtBlockSize)
|
|
438
|
+
{
|
|
439
|
+
UInt32 subValue = p->pos - p->cyclicBufferSize;
|
|
440
|
+
MatchFinder_Normalize3(subValue, p->son, (size_t)p->cyclicBufferSize * 2);
|
|
441
|
+
p->pos -= subValue;
|
|
442
|
+
}
|
|
758
443
|
|
|
444
|
+
if (!sync->needStart)
|
|
445
|
+
{
|
|
446
|
+
CriticalSection_Leave(&sync->cs);
|
|
447
|
+
sync->csWasEntered = False;
|
|
448
|
+
}
|
|
449
|
+
}
|
|
759
450
|
|
|
760
|
-
|
|
761
|
-
static void BtThreadFunc(CMatchFinderMt *mt)
|
|
451
|
+
void BtThreadFunc(CMatchFinderMt *mt)
|
|
762
452
|
{
|
|
763
453
|
CMtSync *p = &mt->btSync;
|
|
764
454
|
for (;;)
|
|
765
455
|
{
|
|
766
456
|
UInt32 blockIndex = 0;
|
|
767
457
|
Event_Wait(&p->canStart);
|
|
768
|
-
|
|
458
|
+
Event_Set(&p->wasStarted);
|
|
769
459
|
for (;;)
|
|
770
460
|
{
|
|
771
|
-
PRF(printf(" BT thread block = %d pos = %d\n", (unsigned)blockIndex, mt->pos));
|
|
772
|
-
/* (p->exit == true) is possible after (p->canStart) at first loop iteration
|
|
773
|
-
and is unexpected after more Wait(freeSemaphore) iterations */
|
|
774
461
|
if (p->exit)
|
|
775
462
|
return;
|
|
776
|
-
|
|
777
|
-
Semaphore_Wait(&p->freeSemaphore);
|
|
778
|
-
|
|
779
|
-
// for faster stop : we check (p->stopWriting) after Wait(freeSemaphore)
|
|
780
463
|
if (p->stopWriting)
|
|
464
|
+
{
|
|
465
|
+
p->numProcessedBlocks = blockIndex;
|
|
466
|
+
MtSync_StopWriting(&mt->hashSync);
|
|
467
|
+
Event_Set(&p->wasStopped);
|
|
781
468
|
break;
|
|
782
|
-
|
|
469
|
+
}
|
|
470
|
+
Semaphore_Wait(&p->freeSemaphore);
|
|
783
471
|
BtFillBlock(mt, blockIndex++);
|
|
784
|
-
|
|
785
472
|
Semaphore_Release1(&p->filledSemaphore);
|
|
786
473
|
}
|
|
787
|
-
|
|
788
|
-
// we stop HASH_THREAD here
|
|
789
|
-
MtSync_StopWriting(&mt->hashSync);
|
|
790
|
-
|
|
791
|
-
// p->numBlocks_Sent = blockIndex;
|
|
792
|
-
Event_Set(&p->wasStopped);
|
|
793
474
|
}
|
|
794
475
|
}
|
|
795
476
|
|
|
796
|
-
|
|
797
477
|
void MatchFinderMt_Construct(CMatchFinderMt *p)
|
|
798
478
|
{
|
|
799
479
|
p->hashBuf = NULL;
|
|
@@ -809,39 +489,16 @@ static void MatchFinderMt_FreeMem(CMatchFinderMt *p, ISzAllocPtr alloc)
|
|
|
809
489
|
|
|
810
490
|
void MatchFinderMt_Destruct(CMatchFinderMt *p, ISzAllocPtr alloc)
|
|
811
491
|
{
|
|
812
|
-
/*
|
|
813
|
-
HASH_THREAD can use CriticalSection(s) btSync.cs and hashSync.cs.
|
|
814
|
-
So we must be sure that HASH_THREAD will not use CriticalSection(s)
|
|
815
|
-
after deleting CriticalSection here.
|
|
816
|
-
|
|
817
|
-
we call ReleaseStream(p)
|
|
818
|
-
that calls StopWriting(btSync)
|
|
819
|
-
that calls StopWriting(hashSync), if it's required to stop HASH_THREAD.
|
|
820
|
-
after StopWriting() it's safe to destruct MtSync(s) in any order */
|
|
821
|
-
|
|
822
|
-
MatchFinderMt_ReleaseStream(p);
|
|
823
|
-
|
|
824
|
-
MtSync_Destruct(&p->btSync);
|
|
825
492
|
MtSync_Destruct(&p->hashSync);
|
|
826
|
-
|
|
827
|
-
LOG_ITER(
|
|
828
|
-
printf("\nTree %9d * %7d iter = %9d = sum : bytes = %9d\n",
|
|
829
|
-
(UInt32)(g_NumIters_Tree / 1000),
|
|
830
|
-
(UInt32)(((UInt64)g_NumIters_Loop * 1000) / (g_NumIters_Tree + 1)),
|
|
831
|
-
(UInt32)(g_NumIters_Loop / 1000),
|
|
832
|
-
(UInt32)(g_NumIters_Bytes / 1000)
|
|
833
|
-
));
|
|
834
|
-
|
|
493
|
+
MtSync_Destruct(&p->btSync);
|
|
835
494
|
MatchFinderMt_FreeMem(p, alloc);
|
|
836
495
|
}
|
|
837
496
|
|
|
838
|
-
|
|
839
497
|
#define kHashBufferSize (kMtHashBlockSize * kMtHashNumBlocks)
|
|
840
498
|
#define kBtBufferSize (kMtBtBlockSize * kMtBtNumBlocks)
|
|
841
499
|
|
|
842
|
-
|
|
843
|
-
static
|
|
844
|
-
static THREAD_FUNC_DECL BtThreadFunc2(void *p)
|
|
500
|
+
static THREAD_FUNC_RET_TYPE THREAD_FUNC_CALL_TYPE HashThreadFunc2(void *p) { HashThreadFunc((CMatchFinderMt *)p); return 0; }
|
|
501
|
+
static THREAD_FUNC_RET_TYPE THREAD_FUNC_CALL_TYPE BtThreadFunc2(void *p)
|
|
845
502
|
{
|
|
846
503
|
Byte allocaDummy[0x180];
|
|
847
504
|
unsigned i = 0;
|
|
@@ -852,17 +509,16 @@ static THREAD_FUNC_DECL BtThreadFunc2(void *p)
|
|
|
852
509
|
return 0;
|
|
853
510
|
}
|
|
854
511
|
|
|
855
|
-
|
|
856
512
|
SRes MatchFinderMt_Create(CMatchFinderMt *p, UInt32 historySize, UInt32 keepAddBufferBefore,
|
|
857
513
|
UInt32 matchMaxLen, UInt32 keepAddBufferAfter, ISzAllocPtr alloc)
|
|
858
514
|
{
|
|
859
|
-
CMatchFinder *mf =
|
|
515
|
+
CMatchFinder *mf = p->MatchFinder;
|
|
860
516
|
p->historySize = historySize;
|
|
861
517
|
if (kMtBtBlockSize <= matchMaxLen * 4)
|
|
862
518
|
return SZ_ERROR_PARAM;
|
|
863
519
|
if (!p->hashBuf)
|
|
864
520
|
{
|
|
865
|
-
p->hashBuf = (UInt32 *)ISzAlloc_Alloc(alloc, (
|
|
521
|
+
p->hashBuf = (UInt32 *)ISzAlloc_Alloc(alloc, (kHashBufferSize + kBtBufferSize) * sizeof(UInt32));
|
|
866
522
|
if (!p->hashBuf)
|
|
867
523
|
return SZ_ERROR_MEM;
|
|
868
524
|
p->btBuf = p->hashBuf + kHashBufferSize;
|
|
@@ -872,472 +528,262 @@ SRes MatchFinderMt_Create(CMatchFinderMt *p, UInt32 historySize, UInt32 keepAddB
|
|
|
872
528
|
if (!MatchFinder_Create(mf, historySize, keepAddBufferBefore, matchMaxLen, keepAddBufferAfter, alloc))
|
|
873
529
|
return SZ_ERROR_MEM;
|
|
874
530
|
|
|
875
|
-
RINOK(MtSync_Create(&p->hashSync, HashThreadFunc2, p))
|
|
876
|
-
RINOK(MtSync_Create(&p->btSync, BtThreadFunc2, p))
|
|
531
|
+
RINOK(MtSync_Create(&p->hashSync, HashThreadFunc2, p, kMtHashNumBlocks));
|
|
532
|
+
RINOK(MtSync_Create(&p->btSync, BtThreadFunc2, p, kMtBtNumBlocks));
|
|
877
533
|
return SZ_OK;
|
|
878
534
|
}
|
|
879
535
|
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
{
|
|
883
|
-
RINOK(MtSync_Init(&p->hashSync, kMtHashNumBlocks))
|
|
884
|
-
return MtSync_Init(&p->btSync, kMtBtNumBlocks);
|
|
885
|
-
}
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
static void MatchFinderMt_Init(void *_p)
|
|
536
|
+
/* Call it after ReleaseStream / SetStream */
|
|
537
|
+
static void MatchFinderMt_Init(CMatchFinderMt *p)
|
|
889
538
|
{
|
|
890
|
-
|
|
891
|
-
CMatchFinder *mf = MF(p);
|
|
539
|
+
CMatchFinder *mf = p->MatchFinder;
|
|
892
540
|
|
|
893
541
|
p->btBufPos =
|
|
894
|
-
p->btBufPosLimit =
|
|
542
|
+
p->btBufPosLimit = 0;
|
|
895
543
|
p->hashBufPos =
|
|
896
544
|
p->hashBufPosLimit = 0;
|
|
897
|
-
p->hashNumAvail = 0; // 21.03
|
|
898
|
-
|
|
899
|
-
p->failure_BT = False;
|
|
900
545
|
|
|
901
546
|
/* Init without data reading. We don't want to read data in this thread */
|
|
902
|
-
|
|
903
|
-
|
|
547
|
+
MatchFinder_Init_3(mf, False);
|
|
904
548
|
MatchFinder_Init_LowHash(mf);
|
|
905
549
|
|
|
906
550
|
p->pointerToCurPos = Inline_MatchFinder_GetPointerToCurrentPos(mf);
|
|
907
551
|
p->btNumAvailBytes = 0;
|
|
908
|
-
p->
|
|
909
|
-
// p->failure_LZ_LZ = False;
|
|
910
|
-
|
|
911
|
-
p->lzPos =
|
|
912
|
-
1; // optimal smallest value
|
|
913
|
-
// 0; // for debug: ignores match to start
|
|
914
|
-
// kNormalizeAlign; // for debug
|
|
552
|
+
p->lzPos = p->historySize + 1;
|
|
915
553
|
|
|
916
554
|
p->hash = mf->hash;
|
|
917
555
|
p->fixedHashSize = mf->fixedHashSize;
|
|
918
|
-
// p->hash4Mask = mf->hash4Mask;
|
|
919
556
|
p->crc = mf->crc;
|
|
920
|
-
// memcpy(p->crc, mf->crc, sizeof(mf->crc));
|
|
921
557
|
|
|
922
558
|
p->son = mf->son;
|
|
923
559
|
p->matchMaxLen = mf->matchMaxLen;
|
|
924
560
|
p->numHashBytes = mf->numHashBytes;
|
|
925
|
-
|
|
926
|
-
/* (mf->pos) and (mf->streamPos) were already initialized to 1 in MatchFinder_Init_4() */
|
|
927
|
-
// mf->streamPos = mf->pos = 1; // optimal smallest value
|
|
928
|
-
// 0; // for debug: ignores match to start
|
|
929
|
-
// kNormalizeAlign; // for debug
|
|
930
|
-
|
|
931
|
-
/* we must init (p->pos = mf->pos) for BT, because
|
|
932
|
-
BT code needs (p->pos == delta_value_for_empty_hash_record == mf->pos) */
|
|
933
|
-
p->pos = mf->pos; // do not change it
|
|
934
|
-
|
|
935
|
-
p->cyclicBufferPos = (p->pos - CYC_TO_POS_OFFSET);
|
|
936
|
-
p->cyclicBufferSize = mf->cyclicBufferSize;
|
|
561
|
+
p->pos = mf->pos;
|
|
937
562
|
p->buffer = mf->buffer;
|
|
563
|
+
p->cyclicBufferPos = mf->cyclicBufferPos;
|
|
564
|
+
p->cyclicBufferSize = mf->cyclicBufferSize;
|
|
938
565
|
p->cutValue = mf->cutValue;
|
|
939
|
-
// p->son[0] = p->son[1] = 0; // unused: to init skipped record for speculated accesses.
|
|
940
566
|
}
|
|
941
567
|
|
|
942
|
-
|
|
943
568
|
/* ReleaseStream is required to finish multithreading */
|
|
944
569
|
void MatchFinderMt_ReleaseStream(CMatchFinderMt *p)
|
|
945
570
|
{
|
|
946
|
-
// Sleep(1); // for debug
|
|
947
571
|
MtSync_StopWriting(&p->btSync);
|
|
948
|
-
// Sleep(200); // for debug
|
|
949
572
|
/* p->MatchFinder->ReleaseStream(); */
|
|
950
573
|
}
|
|
951
574
|
|
|
952
|
-
|
|
953
|
-
Z7_NO_INLINE
|
|
954
|
-
static UInt32 MatchFinderMt_GetNextBlock_Bt(CMatchFinderMt *p)
|
|
575
|
+
static void MatchFinderMt_Normalize(CMatchFinderMt *p)
|
|
955
576
|
{
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
else
|
|
959
|
-
{
|
|
960
|
-
const UInt32 bi = MtSync_GetNextBlock(&p->btSync);
|
|
961
|
-
const UInt32 *bt = p->btBuf + GET_BT_BLOCK_OFFSET(bi);
|
|
962
|
-
{
|
|
963
|
-
const UInt32 numItems = bt[0];
|
|
964
|
-
p->btBufPosLimit = bt + numItems;
|
|
965
|
-
p->btNumAvailBytes = bt[1];
|
|
966
|
-
p->btBufPos = bt + 2;
|
|
967
|
-
if (numItems < 2 || numItems > kMtBtBlockSize)
|
|
968
|
-
{
|
|
969
|
-
p->failureBuf[0] = 0;
|
|
970
|
-
p->btBufPos = p->failureBuf;
|
|
971
|
-
p->btBufPosLimit = p->failureBuf + 1;
|
|
972
|
-
p->failure_LZ_BT = True;
|
|
973
|
-
// p->btNumAvailBytes = 0;
|
|
974
|
-
/* we don't want to decrease AvailBytes, that was load before.
|
|
975
|
-
that can be unxepected for the code that have loaded anopther value before */
|
|
976
|
-
}
|
|
977
|
-
}
|
|
978
|
-
|
|
979
|
-
if (p->lzPos >= (UInt32)kMtMaxValForNormalize - (UInt32)kMtBtBlockSize)
|
|
980
|
-
{
|
|
981
|
-
/* we don't check (lzPos) over exact avail bytes in (btBuf).
|
|
982
|
-
(fixedHashSize) is small, so normalization is fast */
|
|
983
|
-
const UInt32 subValue = (p->lzPos - p->historySize - 1); // & ~(UInt32)(kNormalizeAlign - 1);
|
|
984
|
-
p->lzPos -= subValue;
|
|
985
|
-
MatchFinder_Normalize3(subValue, p->hash, p->fixedHashSize);
|
|
986
|
-
}
|
|
987
|
-
}
|
|
988
|
-
return p->btNumAvailBytes;
|
|
577
|
+
MatchFinder_Normalize3(p->lzPos - p->historySize - 1, p->hash, p->fixedHashSize);
|
|
578
|
+
p->lzPos = p->historySize + 1;
|
|
989
579
|
}
|
|
990
580
|
|
|
581
|
+
static void MatchFinderMt_GetNextBlock_Bt(CMatchFinderMt *p)
|
|
582
|
+
{
|
|
583
|
+
UInt32 blockIndex;
|
|
584
|
+
MtSync_GetNextBlock(&p->btSync);
|
|
585
|
+
blockIndex = ((p->btSync.numProcessedBlocks - 1) & kMtBtNumBlocksMask);
|
|
586
|
+
p->btBufPosLimit = p->btBufPos = blockIndex * kMtBtBlockSize;
|
|
587
|
+
p->btBufPosLimit += p->btBuf[p->btBufPos++];
|
|
588
|
+
p->btNumAvailBytes = p->btBuf[p->btBufPos++];
|
|
589
|
+
if (p->lzPos >= kMtMaxValForNormalize - kMtBtBlockSize)
|
|
590
|
+
MatchFinderMt_Normalize(p);
|
|
591
|
+
}
|
|
991
592
|
|
|
992
|
-
|
|
993
|
-
static const Byte * MatchFinderMt_GetPointerToCurrentPos(void *_p)
|
|
593
|
+
static const Byte * MatchFinderMt_GetPointerToCurrentPos(CMatchFinderMt *p)
|
|
994
594
|
{
|
|
995
|
-
CMatchFinderMt *p = (CMatchFinderMt *)_p;
|
|
996
595
|
return p->pointerToCurPos;
|
|
997
596
|
}
|
|
998
597
|
|
|
999
|
-
|
|
1000
598
|
#define GET_NEXT_BLOCK_IF_REQUIRED if (p->btBufPos == p->btBufPosLimit) MatchFinderMt_GetNextBlock_Bt(p);
|
|
1001
599
|
|
|
1002
|
-
|
|
1003
|
-
static UInt32 MatchFinderMt_GetNumAvailableBytes(void *_p)
|
|
600
|
+
static UInt32 MatchFinderMt_GetNumAvailableBytes(CMatchFinderMt *p)
|
|
1004
601
|
{
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
return p->btNumAvailBytes;
|
|
1008
|
-
return MatchFinderMt_GetNextBlock_Bt(p);
|
|
602
|
+
GET_NEXT_BLOCK_IF_REQUIRED;
|
|
603
|
+
return p->btNumAvailBytes;
|
|
1009
604
|
}
|
|
1010
605
|
|
|
1011
|
-
|
|
1012
|
-
// #define CHECK_FAILURE_LZ(_match_, _pos_) if (_match_ >= _pos_) { p->failure_LZ_LZ = True; return d; }
|
|
1013
|
-
#define CHECK_FAILURE_LZ(_match_, _pos_)
|
|
1014
|
-
|
|
1015
|
-
static UInt32 * MixMatches2(CMatchFinderMt *p, UInt32 matchMinPos, UInt32 *d)
|
|
606
|
+
static UInt32 * MixMatches2(CMatchFinderMt *p, UInt32 matchMinPos, UInt32 *distances)
|
|
1016
607
|
{
|
|
1017
|
-
UInt32 h2,
|
|
608
|
+
UInt32 h2, curMatch2;
|
|
1018
609
|
UInt32 *hash = p->hash;
|
|
1019
610
|
const Byte *cur = p->pointerToCurPos;
|
|
1020
|
-
|
|
611
|
+
UInt32 lzPos = p->lzPos;
|
|
1021
612
|
MT_HASH2_CALC
|
|
1022
613
|
|
|
1023
|
-
|
|
1024
|
-
hash[h2] =
|
|
614
|
+
curMatch2 = hash[h2];
|
|
615
|
+
hash[h2] = lzPos;
|
|
1025
616
|
|
|
1026
|
-
if (
|
|
1027
|
-
|
|
1028
|
-
CHECK_FAILURE_LZ(c2, m)
|
|
1029
|
-
if (cur[(ptrdiff_t)c2 - (ptrdiff_t)m] == cur[0])
|
|
617
|
+
if (curMatch2 >= matchMinPos)
|
|
618
|
+
if (cur[(ptrdiff_t)curMatch2 - lzPos] == cur[0])
|
|
1030
619
|
{
|
|
1031
|
-
*
|
|
1032
|
-
*
|
|
620
|
+
*distances++ = 2;
|
|
621
|
+
*distances++ = lzPos - curMatch2 - 1;
|
|
1033
622
|
}
|
|
1034
|
-
}
|
|
1035
623
|
|
|
1036
|
-
return
|
|
624
|
+
return distances;
|
|
1037
625
|
}
|
|
1038
626
|
|
|
1039
|
-
static UInt32 * MixMatches3(CMatchFinderMt *p, UInt32 matchMinPos, UInt32 *
|
|
627
|
+
static UInt32 * MixMatches3(CMatchFinderMt *p, UInt32 matchMinPos, UInt32 *distances)
|
|
1040
628
|
{
|
|
1041
|
-
UInt32 h2, h3,
|
|
629
|
+
UInt32 h2, h3, curMatch2, curMatch3;
|
|
1042
630
|
UInt32 *hash = p->hash;
|
|
1043
631
|
const Byte *cur = p->pointerToCurPos;
|
|
1044
|
-
|
|
632
|
+
UInt32 lzPos = p->lzPos;
|
|
1045
633
|
MT_HASH3_CALC
|
|
1046
634
|
|
|
1047
|
-
|
|
1048
|
-
|
|
635
|
+
curMatch2 = hash[ h2];
|
|
636
|
+
curMatch3 = (hash + kFix3HashSize)[h3];
|
|
1049
637
|
|
|
1050
|
-
hash[h2] =
|
|
1051
|
-
(hash + kFix3HashSize)[h3] =
|
|
638
|
+
hash[ h2] = lzPos;
|
|
639
|
+
(hash + kFix3HashSize)[h3] = lzPos;
|
|
1052
640
|
|
|
1053
|
-
if (
|
|
641
|
+
if (curMatch2 >= matchMinPos && cur[(ptrdiff_t)curMatch2 - lzPos] == cur[0])
|
|
1054
642
|
{
|
|
1055
|
-
|
|
1056
|
-
if (cur[(ptrdiff_t)
|
|
643
|
+
distances[1] = lzPos - curMatch2 - 1;
|
|
644
|
+
if (cur[(ptrdiff_t)curMatch2 - lzPos + 2] == cur[2])
|
|
1057
645
|
{
|
|
1058
|
-
|
|
1059
|
-
|
|
1060
|
-
{
|
|
1061
|
-
d[0] = 3;
|
|
1062
|
-
return d + 2;
|
|
1063
|
-
}
|
|
1064
|
-
d[0] = 2;
|
|
1065
|
-
d += 2;
|
|
646
|
+
distances[0] = 3;
|
|
647
|
+
return distances + 2;
|
|
1066
648
|
}
|
|
649
|
+
distances[0] = 2;
|
|
650
|
+
distances += 2;
|
|
1067
651
|
}
|
|
1068
652
|
|
|
1069
|
-
if (
|
|
653
|
+
if (curMatch3 >= matchMinPos && cur[(ptrdiff_t)curMatch3 - lzPos] == cur[0])
|
|
1070
654
|
{
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
{
|
|
1074
|
-
*d++ = 3;
|
|
1075
|
-
*d++ = m - c3 - 1;
|
|
1076
|
-
}
|
|
655
|
+
*distances++ = 3;
|
|
656
|
+
*distances++ = lzPos - curMatch3 - 1;
|
|
1077
657
|
}
|
|
1078
658
|
|
|
1079
|
-
return
|
|
659
|
+
return distances;
|
|
1080
660
|
}
|
|
1081
661
|
|
|
1082
|
-
|
|
1083
|
-
#define INCREASE_LZ_POS p->lzPos++; p->pointerToCurPos++;
|
|
1084
|
-
|
|
1085
662
|
/*
|
|
1086
|
-
static
|
|
1087
|
-
UInt32* MatchFinderMt_GetMatches_Bt4(CMatchFinderMt *p, UInt32 *d)
|
|
1088
|
-
{
|
|
1089
|
-
const UInt32 *bt = p->btBufPos;
|
|
1090
|
-
const UInt32 len = *bt++;
|
|
1091
|
-
const UInt32 *btLim = bt + len;
|
|
1092
|
-
UInt32 matchMinPos;
|
|
1093
|
-
UInt32 avail = p->btNumAvailBytes - 1;
|
|
1094
|
-
p->btBufPos = btLim;
|
|
1095
|
-
|
|
1096
|
-
{
|
|
1097
|
-
p->btNumAvailBytes = avail;
|
|
1098
|
-
|
|
1099
|
-
#define BT_HASH_BYTES_MAX 5
|
|
1100
|
-
|
|
1101
|
-
matchMinPos = p->lzPos;
|
|
1102
|
-
|
|
1103
|
-
if (len != 0)
|
|
1104
|
-
matchMinPos -= bt[1];
|
|
1105
|
-
else if (avail < (BT_HASH_BYTES_MAX - 1) - 1)
|
|
1106
|
-
{
|
|
1107
|
-
INCREASE_LZ_POS
|
|
1108
|
-
return d;
|
|
1109
|
-
}
|
|
1110
|
-
else
|
|
1111
|
-
{
|
|
1112
|
-
const UInt32 hs = p->historySize;
|
|
1113
|
-
if (matchMinPos > hs)
|
|
1114
|
-
matchMinPos -= hs;
|
|
1115
|
-
else
|
|
1116
|
-
matchMinPos = 1;
|
|
1117
|
-
}
|
|
1118
|
-
}
|
|
1119
|
-
|
|
1120
|
-
for (;;)
|
|
1121
|
-
{
|
|
1122
|
-
|
|
1123
|
-
UInt32 h2, h3, c2, c3;
|
|
1124
|
-
UInt32 *hash = p->hash;
|
|
1125
|
-
const Byte *cur = p->pointerToCurPos;
|
|
1126
|
-
UInt32 m = p->lzPos;
|
|
1127
|
-
MT_HASH3_CALC
|
|
1128
|
-
|
|
1129
|
-
c2 = hash[h2];
|
|
1130
|
-
c3 = (hash + kFix3HashSize)[h3];
|
|
1131
|
-
|
|
1132
|
-
hash[h2] = m;
|
|
1133
|
-
(hash + kFix3HashSize)[h3] = m;
|
|
1134
|
-
|
|
1135
|
-
if (c2 >= matchMinPos && cur[(ptrdiff_t)c2 - (ptrdiff_t)m] == cur[0])
|
|
1136
|
-
{
|
|
1137
|
-
d[1] = m - c2 - 1;
|
|
1138
|
-
if (cur[(ptrdiff_t)c2 - (ptrdiff_t)m + 2] == cur[2])
|
|
1139
|
-
{
|
|
1140
|
-
d[0] = 3;
|
|
1141
|
-
d += 2;
|
|
1142
|
-
break;
|
|
1143
|
-
}
|
|
1144
|
-
// else
|
|
1145
|
-
{
|
|
1146
|
-
d[0] = 2;
|
|
1147
|
-
d += 2;
|
|
1148
|
-
}
|
|
1149
|
-
}
|
|
1150
|
-
if (c3 >= matchMinPos && cur[(ptrdiff_t)c3 - (ptrdiff_t)m] == cur[0])
|
|
1151
|
-
{
|
|
1152
|
-
*d++ = 3;
|
|
1153
|
-
*d++ = m - c3 - 1;
|
|
1154
|
-
}
|
|
1155
|
-
break;
|
|
1156
|
-
}
|
|
1157
|
-
|
|
1158
|
-
if (len != 0)
|
|
1159
|
-
{
|
|
1160
|
-
do
|
|
1161
|
-
{
|
|
1162
|
-
const UInt32 v0 = bt[0];
|
|
1163
|
-
const UInt32 v1 = bt[1];
|
|
1164
|
-
bt += 2;
|
|
1165
|
-
d[0] = v0;
|
|
1166
|
-
d[1] = v1;
|
|
1167
|
-
d += 2;
|
|
1168
|
-
}
|
|
1169
|
-
while (bt != btLim);
|
|
1170
|
-
}
|
|
1171
|
-
INCREASE_LZ_POS
|
|
1172
|
-
return d;
|
|
1173
|
-
}
|
|
1174
|
-
*/
|
|
1175
|
-
|
|
1176
|
-
|
|
1177
|
-
static UInt32 * MixMatches4(CMatchFinderMt *p, UInt32 matchMinPos, UInt32 *d)
|
|
663
|
+
static UInt32 *MixMatches4(CMatchFinderMt *p, UInt32 matchMinPos, UInt32 *distances)
|
|
1178
664
|
{
|
|
1179
|
-
UInt32 h2, h3,
|
|
665
|
+
UInt32 h2, h3, h4, curMatch2, curMatch3, curMatch4;
|
|
1180
666
|
UInt32 *hash = p->hash;
|
|
1181
667
|
const Byte *cur = p->pointerToCurPos;
|
|
1182
|
-
|
|
1183
|
-
|
|
1184
|
-
|
|
1185
|
-
|
|
1186
|
-
|
|
1187
|
-
|
|
668
|
+
UInt32 lzPos = p->lzPos;
|
|
669
|
+
MT_HASH4_CALC
|
|
670
|
+
|
|
671
|
+
curMatch2 = hash[ h2];
|
|
672
|
+
curMatch3 = (hash + kFix3HashSize)[h3];
|
|
673
|
+
curMatch4 = (hash + kFix4HashSize)[h4];
|
|
1188
674
|
|
|
1189
|
-
hash[h2] =
|
|
1190
|
-
(hash + kFix3HashSize)[h3] =
|
|
1191
|
-
|
|
675
|
+
hash[ h2] = lzPos;
|
|
676
|
+
(hash + kFix3HashSize)[h3] = lzPos;
|
|
677
|
+
(hash + kFix4HashSize)[h4] = lzPos;
|
|
1192
678
|
|
|
1193
|
-
|
|
1194
|
-
// #ifdef BT5_USE_H2
|
|
1195
|
-
if (c2 >= matchMinPos && cur[(ptrdiff_t)c2 - (ptrdiff_t)m] == cur[0])
|
|
679
|
+
if (curMatch2 >= matchMinPos && cur[(ptrdiff_t)curMatch2 - lzPos] == cur[0])
|
|
1196
680
|
{
|
|
1197
|
-
|
|
1198
|
-
if (cur[(ptrdiff_t)
|
|
681
|
+
distances[1] = lzPos - curMatch2 - 1;
|
|
682
|
+
if (cur[(ptrdiff_t)curMatch2 - lzPos + 2] == cur[2])
|
|
1199
683
|
{
|
|
1200
|
-
|
|
1201
|
-
|
|
1202
|
-
|
|
1203
|
-
if (cur[(ptrdiff_t)c2 - (ptrdiff_t)m + 3] == cur[3])
|
|
1204
|
-
{
|
|
1205
|
-
d[0] = 4;
|
|
1206
|
-
return d + 2;
|
|
1207
|
-
}
|
|
1208
|
-
d[0] = 3;
|
|
1209
|
-
d += 2;
|
|
1210
|
-
|
|
1211
|
-
#ifdef BT5_USE_H4
|
|
1212
|
-
if (c4 >= matchMinPos)
|
|
1213
|
-
if (
|
|
1214
|
-
cur[(ptrdiff_t)c4 - (ptrdiff_t)m] == cur[0] &&
|
|
1215
|
-
cur[(ptrdiff_t)c4 - (ptrdiff_t)m + 3] == cur[3]
|
|
1216
|
-
)
|
|
1217
|
-
{
|
|
1218
|
-
*d++ = 4;
|
|
1219
|
-
*d++ = m - c4 - 1;
|
|
1220
|
-
}
|
|
1221
|
-
#endif
|
|
1222
|
-
return d;
|
|
684
|
+
distances[0] = (cur[(ptrdiff_t)curMatch2 - lzPos + 3] == cur[3]) ? 4 : 3;
|
|
685
|
+
return distances + 2;
|
|
1223
686
|
}
|
|
1224
|
-
|
|
1225
|
-
|
|
687
|
+
distances[0] = 2;
|
|
688
|
+
distances += 2;
|
|
1226
689
|
}
|
|
1227
|
-
// #endif
|
|
1228
690
|
|
|
1229
|
-
if (
|
|
691
|
+
if (curMatch3 >= matchMinPos && cur[(ptrdiff_t)curMatch3 - lzPos] == cur[0])
|
|
1230
692
|
{
|
|
1231
|
-
|
|
1232
|
-
if (cur[(ptrdiff_t)
|
|
693
|
+
distances[1] = lzPos - curMatch3 - 1;
|
|
694
|
+
if (cur[(ptrdiff_t)curMatch3 - lzPos + 3] == cur[3])
|
|
1233
695
|
{
|
|
1234
|
-
|
|
1235
|
-
return
|
|
696
|
+
distances[0] = 4;
|
|
697
|
+
return distances + 2;
|
|
1236
698
|
}
|
|
1237
|
-
|
|
1238
|
-
|
|
699
|
+
distances[0] = 3;
|
|
700
|
+
distances += 2;
|
|
1239
701
|
}
|
|
1240
702
|
|
|
1241
|
-
|
|
1242
|
-
if (c4 >= matchMinPos)
|
|
703
|
+
if (curMatch4 >= matchMinPos)
|
|
1243
704
|
if (
|
|
1244
|
-
cur[(ptrdiff_t)
|
|
1245
|
-
cur[(ptrdiff_t)
|
|
705
|
+
cur[(ptrdiff_t)curMatch4 - lzPos] == cur[0] &&
|
|
706
|
+
cur[(ptrdiff_t)curMatch4 - lzPos + 3] == cur[3]
|
|
1246
707
|
)
|
|
1247
708
|
{
|
|
1248
|
-
*
|
|
1249
|
-
*
|
|
709
|
+
*distances++ = 4;
|
|
710
|
+
*distances++ = lzPos - curMatch4 - 1;
|
|
1250
711
|
}
|
|
1251
|
-
#endif
|
|
1252
712
|
|
|
1253
|
-
return
|
|
713
|
+
return distances;
|
|
1254
714
|
}
|
|
715
|
+
*/
|
|
1255
716
|
|
|
717
|
+
#define INCREASE_LZ_POS p->lzPos++; p->pointerToCurPos++;
|
|
1256
718
|
|
|
1257
|
-
static UInt32
|
|
719
|
+
static UInt32 MatchFinderMt2_GetMatches(CMatchFinderMt *p, UInt32 *distances)
|
|
1258
720
|
{
|
|
1259
|
-
|
|
1260
|
-
|
|
1261
|
-
|
|
1262
|
-
const UInt32 *btLim = bt + len;
|
|
1263
|
-
p->btBufPos = btLim;
|
|
721
|
+
const UInt32 *btBuf = p->btBuf + p->btBufPos;
|
|
722
|
+
UInt32 len = *btBuf++;
|
|
723
|
+
p->btBufPos += 1 + len;
|
|
1264
724
|
p->btNumAvailBytes--;
|
|
1265
|
-
INCREASE_LZ_POS
|
|
1266
725
|
{
|
|
1267
|
-
|
|
726
|
+
UInt32 i;
|
|
727
|
+
for (i = 0; i < len; i += 2)
|
|
1268
728
|
{
|
|
1269
|
-
|
|
1270
|
-
|
|
1271
|
-
|
|
1272
|
-
|
|
1273
|
-
|
|
1274
|
-
|
|
729
|
+
UInt32 v0 = btBuf[0];
|
|
730
|
+
UInt32 v1 = btBuf[1];
|
|
731
|
+
btBuf += 2;
|
|
732
|
+
distances[0] = v0;
|
|
733
|
+
distances[1] = v1;
|
|
734
|
+
distances += 2;
|
|
1275
735
|
}
|
|
1276
736
|
}
|
|
1277
|
-
|
|
737
|
+
INCREASE_LZ_POS
|
|
738
|
+
return len;
|
|
1278
739
|
}
|
|
1279
740
|
|
|
1280
|
-
|
|
1281
|
-
|
|
1282
|
-
static UInt32 * MatchFinderMt_GetMatches(void *_p, UInt32 *d)
|
|
741
|
+
static UInt32 MatchFinderMt_GetMatches(CMatchFinderMt *p, UInt32 *distances)
|
|
1283
742
|
{
|
|
1284
|
-
|
|
1285
|
-
|
|
1286
|
-
|
|
1287
|
-
|
|
1288
|
-
p->btNumAvailBytes = avail;
|
|
1289
|
-
p->btBufPos = bt + len;
|
|
743
|
+
const UInt32 *btBuf = p->btBuf + p->btBufPos;
|
|
744
|
+
UInt32 len = *btBuf++;
|
|
745
|
+
p->btBufPos += 1 + len;
|
|
746
|
+
|
|
1290
747
|
if (len == 0)
|
|
1291
748
|
{
|
|
1292
|
-
|
|
1293
|
-
if (
|
|
1294
|
-
|
|
1295
|
-
UInt32 m = p->lzPos;
|
|
1296
|
-
if (m > p->historySize)
|
|
1297
|
-
m -= p->historySize;
|
|
1298
|
-
else
|
|
1299
|
-
m = 1;
|
|
1300
|
-
d = p->MixMatchesFunc(p, m, d);
|
|
1301
|
-
}
|
|
749
|
+
/* change for bt5 ! */
|
|
750
|
+
if (p->btNumAvailBytes-- >= 4)
|
|
751
|
+
len = (UInt32)(p->MixMatchesFunc(p, p->lzPos - p->historySize, distances) - (distances));
|
|
1302
752
|
}
|
|
1303
753
|
else
|
|
1304
754
|
{
|
|
1305
|
-
/*
|
|
1306
|
-
|
|
1307
|
-
|
|
1308
|
-
|
|
1309
|
-
*/
|
|
1310
|
-
d = p->MixMatchesFunc(p, p->lzPos - bt[1], d);
|
|
1311
|
-
// if (d) // check for failure
|
|
755
|
+
/* Condition: there are matches in btBuf with length < p->numHashBytes */
|
|
756
|
+
UInt32 *distances2;
|
|
757
|
+
p->btNumAvailBytes--;
|
|
758
|
+
distances2 = p->MixMatchesFunc(p, p->lzPos - btBuf[1], distances);
|
|
1312
759
|
do
|
|
1313
760
|
{
|
|
1314
|
-
|
|
1315
|
-
|
|
1316
|
-
|
|
1317
|
-
|
|
1318
|
-
|
|
1319
|
-
|
|
761
|
+
UInt32 v0 = btBuf[0];
|
|
762
|
+
UInt32 v1 = btBuf[1];
|
|
763
|
+
btBuf += 2;
|
|
764
|
+
distances2[0] = v0;
|
|
765
|
+
distances2[1] = v1;
|
|
766
|
+
distances2 += 2;
|
|
1320
767
|
}
|
|
1321
|
-
while (len -= 2);
|
|
768
|
+
while ((len -= 2) != 0);
|
|
769
|
+
len = (UInt32)(distances2 - (distances));
|
|
1322
770
|
}
|
|
1323
771
|
INCREASE_LZ_POS
|
|
1324
|
-
return
|
|
772
|
+
return len;
|
|
1325
773
|
}
|
|
1326
774
|
|
|
1327
775
|
#define SKIP_HEADER2_MT do { GET_NEXT_BLOCK_IF_REQUIRED
|
|
1328
776
|
#define SKIP_HEADER_MT(n) SKIP_HEADER2_MT if (p->btNumAvailBytes-- >= (n)) { const Byte *cur = p->pointerToCurPos; UInt32 *hash = p->hash;
|
|
1329
|
-
#define SKIP_FOOTER_MT } INCREASE_LZ_POS p->btBufPos +=
|
|
777
|
+
#define SKIP_FOOTER_MT } INCREASE_LZ_POS p->btBufPos += p->btBuf[p->btBufPos] + 1; } while (--num != 0);
|
|
1330
778
|
|
|
1331
|
-
static void MatchFinderMt0_Skip(
|
|
779
|
+
static void MatchFinderMt0_Skip(CMatchFinderMt *p, UInt32 num)
|
|
1332
780
|
{
|
|
1333
|
-
CMatchFinderMt *p = (CMatchFinderMt *)_p;
|
|
1334
781
|
SKIP_HEADER2_MT { p->btNumAvailBytes--;
|
|
1335
782
|
SKIP_FOOTER_MT
|
|
1336
783
|
}
|
|
1337
784
|
|
|
1338
|
-
static void MatchFinderMt2_Skip(
|
|
785
|
+
static void MatchFinderMt2_Skip(CMatchFinderMt *p, UInt32 num)
|
|
1339
786
|
{
|
|
1340
|
-
CMatchFinderMt *p = (CMatchFinderMt *)_p;
|
|
1341
787
|
SKIP_HEADER_MT(2)
|
|
1342
788
|
UInt32 h2;
|
|
1343
789
|
MT_HASH2_CALC
|
|
@@ -1345,9 +791,8 @@ static void MatchFinderMt2_Skip(void *_p, UInt32 num)
|
|
|
1345
791
|
SKIP_FOOTER_MT
|
|
1346
792
|
}
|
|
1347
793
|
|
|
1348
|
-
static void MatchFinderMt3_Skip(
|
|
794
|
+
static void MatchFinderMt3_Skip(CMatchFinderMt *p, UInt32 num)
|
|
1349
795
|
{
|
|
1350
|
-
CMatchFinderMt *p = (CMatchFinderMt *)_p;
|
|
1351
796
|
SKIP_HEADER_MT(3)
|
|
1352
797
|
UInt32 h2, h3;
|
|
1353
798
|
MT_HASH3_CALC
|
|
@@ -1358,16 +803,12 @@ static void MatchFinderMt3_Skip(void *_p, UInt32 num)
|
|
|
1358
803
|
}
|
|
1359
804
|
|
|
1360
805
|
/*
|
|
1361
|
-
// MatchFinderMt4_Skip() is similar to MatchFinderMt3_Skip().
|
|
1362
|
-
// The difference is that MatchFinderMt3_Skip() updates hash for last 3 bytes of stream.
|
|
1363
|
-
|
|
1364
806
|
static void MatchFinderMt4_Skip(CMatchFinderMt *p, UInt32 num)
|
|
1365
807
|
{
|
|
1366
808
|
SKIP_HEADER_MT(4)
|
|
1367
|
-
UInt32 h2, h3
|
|
1368
|
-
|
|
1369
|
-
|
|
1370
|
-
// (hash + kFix4HashSize)[h4] =
|
|
809
|
+
UInt32 h2, h3, h4;
|
|
810
|
+
MT_HASH4_CALC
|
|
811
|
+
(hash + kFix4HashSize)[h4] =
|
|
1371
812
|
(hash + kFix3HashSize)[h3] =
|
|
1372
813
|
hash[ h2] =
|
|
1373
814
|
p->lzPos;
|
|
@@ -1375,48 +816,38 @@ static void MatchFinderMt4_Skip(CMatchFinderMt *p, UInt32 num)
|
|
|
1375
816
|
}
|
|
1376
817
|
*/
|
|
1377
818
|
|
|
1378
|
-
void MatchFinderMt_CreateVTable(CMatchFinderMt *p,
|
|
819
|
+
void MatchFinderMt_CreateVTable(CMatchFinderMt *p, IMatchFinder *vTable)
|
|
1379
820
|
{
|
|
1380
|
-
vTable->Init = MatchFinderMt_Init;
|
|
1381
|
-
vTable->GetNumAvailableBytes = MatchFinderMt_GetNumAvailableBytes;
|
|
1382
|
-
vTable->GetPointerToCurrentPos = MatchFinderMt_GetPointerToCurrentPos;
|
|
1383
|
-
vTable->GetMatches = MatchFinderMt_GetMatches;
|
|
821
|
+
vTable->Init = (Mf_Init_Func)MatchFinderMt_Init;
|
|
822
|
+
vTable->GetNumAvailableBytes = (Mf_GetNumAvailableBytes_Func)MatchFinderMt_GetNumAvailableBytes;
|
|
823
|
+
vTable->GetPointerToCurrentPos = (Mf_GetPointerToCurrentPos_Func)MatchFinderMt_GetPointerToCurrentPos;
|
|
824
|
+
vTable->GetMatches = (Mf_GetMatches_Func)MatchFinderMt_GetMatches;
|
|
1384
825
|
|
|
1385
|
-
switch (
|
|
826
|
+
switch (p->MatchFinder->numHashBytes)
|
|
1386
827
|
{
|
|
1387
828
|
case 2:
|
|
1388
829
|
p->GetHeadsFunc = GetHeads2;
|
|
1389
|
-
p->MixMatchesFunc = NULL;
|
|
1390
|
-
vTable->Skip = MatchFinderMt0_Skip;
|
|
1391
|
-
vTable->GetMatches = MatchFinderMt2_GetMatches;
|
|
830
|
+
p->MixMatchesFunc = (Mf_Mix_Matches)NULL;
|
|
831
|
+
vTable->Skip = (Mf_Skip_Func)MatchFinderMt0_Skip;
|
|
832
|
+
vTable->GetMatches = (Mf_GetMatches_Func)MatchFinderMt2_GetMatches;
|
|
1392
833
|
break;
|
|
1393
834
|
case 3:
|
|
1394
|
-
p->GetHeadsFunc =
|
|
1395
|
-
p->MixMatchesFunc = MixMatches2;
|
|
1396
|
-
vTable->Skip = MatchFinderMt2_Skip;
|
|
835
|
+
p->GetHeadsFunc = GetHeads3;
|
|
836
|
+
p->MixMatchesFunc = (Mf_Mix_Matches)MixMatches2;
|
|
837
|
+
vTable->Skip = (Mf_Skip_Func)MatchFinderMt2_Skip;
|
|
1397
838
|
break;
|
|
1398
|
-
|
|
1399
|
-
|
|
1400
|
-
|
|
1401
|
-
|
|
1402
|
-
|
|
1403
|
-
|
|
1404
|
-
p->MixMatchesFunc = MixMatches3;
|
|
1405
|
-
vTable->Skip = MatchFinderMt3_Skip;
|
|
839
|
+
default:
|
|
840
|
+
/* case 4: */
|
|
841
|
+
p->GetHeadsFunc = p->MatchFinder->bigHash ? GetHeads4b : GetHeads4;
|
|
842
|
+
p->MixMatchesFunc = (Mf_Mix_Matches)MixMatches3;
|
|
843
|
+
vTable->Skip = (Mf_Skip_Func)MatchFinderMt3_Skip;
|
|
1406
844
|
break;
|
|
845
|
+
/*
|
|
1407
846
|
default:
|
|
1408
|
-
p->GetHeadsFunc =
|
|
1409
|
-
p->MixMatchesFunc = MixMatches4;
|
|
1410
|
-
vTable->Skip =
|
|
1411
|
-
MatchFinderMt3_Skip;
|
|
1412
|
-
// MatchFinderMt4_Skip;
|
|
847
|
+
p->GetHeadsFunc = GetHeads5;
|
|
848
|
+
p->MixMatchesFunc = (Mf_Mix_Matches)MixMatches4;
|
|
849
|
+
vTable->Skip = (Mf_Skip_Func)MatchFinderMt4_Skip;
|
|
1413
850
|
break;
|
|
851
|
+
*/
|
|
1414
852
|
}
|
|
1415
853
|
}
|
|
1416
|
-
|
|
1417
|
-
#undef RINOK_THREAD
|
|
1418
|
-
#undef PRF
|
|
1419
|
-
#undef MF
|
|
1420
|
-
#undef GetUi24hi_from32
|
|
1421
|
-
#undef LOCK_BUFFER
|
|
1422
|
-
#undef UNLOCK_BUFFER
|