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