Commit Graph

24 Commits

Author SHA1 Message Date
sebres
ebe8399e0f resolve deprecated ZSTD_resetDStream with its equivalent ZSTD_DCtx_reset(_ctx, ZSTD_reset_session_only); 2023-02-15 15:34:55 +01:00
Tino Reichardt
0f6bcfd2ed Remove unused debug code in Compress/Zstd*.cpp 2021-10-05 23:17:27 +02:00
Tino Reichardt
9378903648 Fix zstd decompression, files with large window settings did not work 2020-06-02 09:34:09 +02:00
Tino Reichardt
9884fb96fa If zstd fails, give a more specific failure massage, fix #109 2020-04-14 10:18:58 +02:00
vinnyrom
cab7bc1a72 Fix null dereference of 'progress' when updating an archive. The callstack of the crash is:
zstd-x64.dll!NCompress::NZSTD::CDecoder::CodeSpec(ISequentialInStream * inStream=0x000000001e6a2190, ISequentialOutStream * outStream=0x000000001e6b9460, ICompressProgressInfo * progress=0x0000000000000000) Line 130 C++
  zstd-x64.dll!NCompress::NZSTD::CDecoder::Code(ISequentialInStream * inStream=0x000000001e6a2190, ISequentialOutStream * outStream=0x000000001e6b9460, const unsigned __int64 * __formal=0x000000001e8a2d00, const unsigned __int64 * outSize=0x000000001e5eb3b0, ICompressProgressInfo * progress=0x0000000000000000) Line 177 C++
  7z.dll!NCoderMixer2::CCoderMT::Code(ICompressProgressInfo * progress=0x0000000000000000) Line 903 C++
  7z.dll!NCoderMixer2::CMixerMT::Code(ISequentialInStream * const * inStreams=0x000000001e8a2d20, ISequentialOutStream * const * outStreams=0x00000000219bf910, ICompressProgressInfo * progress=0x0000000000000000, bool & dataAfterEnd_Error=false) Line 1083 C++
  7z.dll!NArchive::N7z::CDecoder::Decode(const CExternalCodecs * __externalCodecs=0x000000001e599aa0, IInStream * inStream=0x000000001e8c6300, unsigned __int64 startPos=32, const NArchive::N7z::CFolders & folders={...}, unsigned int folderIndex=0, const unsigned __int64 * unpackSize=0x0000000000000000, ISequentialOutStream * outStream=0x000000001e6b9460, ICompressProgressInfo * compressProgress=0x0000000000000000, ISequentialInStream * * inStreamMainRes=0x0000000000000000, bool & dataAfterEnd_Error=false, ICryptoGetTextPassword * getTextPassword=0x000000001e6882b0, bool & isEncrypted=true, bool & passwordIsDefined=true, UString & password={...}, bool mtMode=false, unsigned int numThreads=1, unsigned __int64 memUsage=0) Line 555 C++
  7z.dll!NArchive::N7z::CThreadDecoder::Execute() Line 1493 C++
  7z.dll!CoderThread(void * p=0x000000001f1cbe90) Line 16 C++

Other 7z threads are:

  7z.dll!Handle_WaitObject(void * h=0x0000000000000868) Line 32 C
  7z.dll!NWindows::NSynchronization::CBaseEvent::Lock() Line 47 C++
  7z.dll!CStreamBinder::Read(void * data=0x000000001e9b53ea, unsigned int size=115206, unsigned int * processedSize=0x000000001f1cb310) Line 95 C++
  7z.dll!CBinderInStream::Read(void * data=0x000000001e9b53ea, unsigned int size=115206, unsigned int * processedSize=0x000000001f1cb310) Line 22 C++
  7z.dll!COffsetOutStream::Write(const void * data=0x000000001e9b53ea, unsigned int size=115206, unsigned int * processedSize=0x000000001f1cb310) Line 19 C++
  7z.dll!CSequentialInStreamSizeCount2::Read(void * data=0x000000001e9b53ea, unsigned int size=115206, unsigned int * processedSize=0x000000001f1cb350) Line 10 C++
  zstd-x64.dll!ReadStream(ISequentialInStream * stream=0x000000001e7b4010, void * data=0x000000001e9b53ea, unsigned __int64 * processedSize=0x000000001f1cb3b8) Line 17 C++
  zstd-x64.dll!NCompress::NZSTD::CEncoder::Code(ISequentialInStream * inStream=0x000000001e7b4010, ISequentialOutStream * outStream=0x000000001e8e0dc0, const unsigned __int64 * __formal=0x0000000000000000, const unsigned __int64 * __formal=0x0000000000000000, ICompressProgressInfo * progress=0x000000001b6df8d0) Line 329 C++
  7z.dll!NCoderMixer2::CCoderMT::Code(ICompressProgressInfo * progress=0x000000001b6df8d0) Line 903 C++
  7z.dll!NCoderMixer2::CMixerMT::Code(ISequentialInStream * const * inStreams=0x000000001f1cb750, ISequentialOutStream * const * outStreams=0x000000001e599bc0, ICompressProgressInfo * progress=0x000000001b6df8d0, bool & dataAfterEnd_Error=false) Line 1083 C++
  7z.dll!NArchive::N7z::CEncoder::Encode(const CExternalCodecs * __externalCodecs=0x000000001e599aa0, ISequentialInStream * inStream=0x000000001e7b3f10, const unsigned __int64 * inSizeForReduce=0x000000001f1cb960, NArchive::N7z::CFolder & folderItem={...}, CRecordVector<unsigned __int64> & coderUnpackSizes={...}, unsigned __int64 & unpackSize=17468, ISequentialOutStream * outStream=0x000000001e8bcdd0, CRecordVector<unsigned __int64> & packSizes={...}, ICompressProgressInfo * compressProgress=0x000000001b6df8d0) Line 454 C++
  7z.dll!NArchive::N7z::Update(const CExternalCodecs * __externalCodecs=0x000000001e599aa0, IInStream * inStream=0x000000001e8c6300, const NArchive::N7z::CDbEx * db=0x000000001e5998a8, const CObjectVector<NArchive::N7z::CUpdateItem> & updateItems={...}, NArchive::N7z::COutArchive & archive={...}, NArchive::N7z::CArchiveDatabaseOut & newDatabase={...}, ISequentialOutStream * seqOutStream=0x000000001e8bcdd0, IArchiveUpdateCallback * updateCallback=0x000000001f1cc980, const NArchive::N7z::CUpdateOptions & options={...}, ICryptoGetTextPassword * getDecoderPassword=0x000000001f1cc958) Line 2178 C++
  7z.dll!NArchive::N7z::CHandler::UpdateItems(ISequentialOutStream * outStream=0x000000001e8bcdd0, unsigned int numItems=10, IArchiveUpdateCallback * updateCallback=0x000000001f1cc980) Line 658 C++

And:

  7z.dll!Handle_WaitObject(void * h=0x0000000000000880) Line 32 C
  7z.dll!NWindows::NSynchronization::CBaseEvent::Lock() Line 47 C++
  7z.dll!CStreamBinder::Read(void * data=0x0000000020650000, unsigned int size=1048576, unsigned int * processedSize=0x000000002084f6d0) Line 95 C++
  7z.dll!CBinderInStream::Read(void * data=0x0000000020650000, unsigned int size=1048576, unsigned int * processedSize=0x000000002084f6d0) Line 22 C++
  7z.dll!ReadStream(ISequentialInStream * stream=0x000000001e8e0de0, void * data=0x0000000020650000, unsigned __int64 * processedSize=0x000000002084f758) Line 17 C++
  7z.dll!CFilterCoder::Code(ISequentialInStream * inStream=0x000000001e8e0de0, ISequentialOutStream * outStream=0x000000001e55da30, const unsigned __int64 * __formal=0x0000000000000000, const unsigned __int64 * outSize=0x0000000000000000, ICompressProgressInfo * progress=0x0000000000000000) Line 83 C++
  7z.dll!NCoderMixer2::CCoderMT::Code(ICompressProgressInfo * progress=0x0000000000000000) Line 903 C++
  7z.dll!NCoderMixer2::CCoderMT::Execute() Line 867 C++
  7z.dll!CoderThread(void * p=0x000000001e5eb510) Line 16 C++
2019-01-15 16:42:11 -08:00
Tino Reichardt
1d1e92a9fb Fix decompression of zstd again
- zIn.size was not correctly set before first decompression loop
2018-12-05 22:28:58 +01:00
Tino Reichardt
bb06376057 Fix decompression of skippable zstd frames 2018-12-04 21:07:12 +01:00
Tino Reichardt
f98edef556 Add zstd fast levels and update 7z property sizes
- add the "fast compression levels" of zstd via "fast" option (fast=1..64)
- change the 7-Zip property sizes of LZ4, LZ5 and Zstandard to 3
- 3 and 5 byte header are valid now (default is 3)
- update the Methods-Extern.md file, to reflect the property changes
2018-11-25 21:21:04 +01:00
Tino Reichardt
1a09f6fc0d Fix zstd decompression
- todo: make zstd ldm compression optional
2018-11-03 10:03:54 +01:00
Tino Reichardt
1048d4e133 Minor fixes
- fix Zstandard Sfx stuff -> SetNumberOfThreads()
- fix formatting of XXH32Reg.cpp and XXH64Reg.cpp
- add Blake2s hash to explorer context menu
2018-11-01 18:18:34 +01:00
Tino Reichardt
54a9234630 Fix decompression code ZstdDecoder.cpp
- remove (nearly) all threading stuff
- check if decompression works with different data sets
2018-10-28 19:50:21 +01:00
Tino Reichardt
739ec50c75 Switch to Zstandard's New advanced API.
- long distance matching is enabled
- the compression should improve, the speed also
- decompression code is single threaded only
2018-10-28 10:37:19 +01:00
Tino Reichardt
eaee80be81 Fix naming: ZStandard -> Zstandard 2017-08-14 23:38:52 +02:00
Tino Reichardt
b79055c7ab Use the new callback function names. 2017-07-11 21:48:26 +02:00
Tino Reichardt
62ccbe9d58 replaced E_FAIL with E_NOTIMPL in SetDecoderProperties2() 2016-12-30 12:25:42 +01:00
Tino Reichardt
4c28e3fa11 add E_ABORT detection
- lz4 and lz5 are not finished...
2016-11-20 16:42:13 +01:00
Tino Reichardt
58069903d0 merge multi threading to master branch
- updated zstd to latest devel release
- lz4, lz5 and zstd is included now
- all three support threading
2016-10-16 23:38:46 +02:00
Tino Reichardt
00c0d31e31 feature release
- you can open / crate .tar.zst files now
- direct compressing of files with zstd works also
- you can also open files compressed with pzstd
- next version will do also threaded compression like pzstd does
- zst files can be registred with 7-Zip ZS now
- update to latest zstd dev release v1.0.1
- the About Box will give you a hint, that this 7-Zip is not the default one
2016-09-15 17:57:28 +02:00
Tino Reichardt
7a9d12a5a3 show MessageBox with the ZStandard error message, when there are problems while decompressing 2016-09-05 22:33:50 +02:00
Tino Reichardt
2512b6593c Switch from zbuff to stream interface
- using the recommended buffersizes from zstd lib
- compile also an codec dll with support for legacy versions
2016-09-04 13:37:51 +02:00
Tino Reichardt
c21cd63d10 Added Extra Codec, for easier integration into existing 7-Zip installations 2016-08-15 20:31:10 +02:00
Tino Reichardt
559693c75b zstd release 0.8.0
- made an extra zstd.mak file
- removed Format7zZStd
- SFXSetup also has zstd now
- the big 7z.dll is backward compatible to: 0.5 .. 0.7
- the small 7za.dll has only support for zstd 0.8
2016-08-09 09:44:05 +02:00
Tino Reichardt
9ad8d1a472 fixed decompression of zstd 0.6.x archives 2016-07-15 18:03:39 +02:00
Tino Reichardt
c3967fe27a Initialer Commit 2016-06-25 21:15:50 +02:00