diff --git a/CPP/7zip/Compress/ZstdDecoder.cpp b/CPP/7zip/Compress/ZstdDecoder.cpp index 8bad5aef..f807acfe 100644 --- a/CPP/7zip/Compress/ZstdDecoder.cpp +++ b/CPP/7zip/Compress/ZstdDecoder.cpp @@ -173,11 +173,6 @@ STDMETHODIMP CDecoder::SetInStream(ISequentialInStream * inStream) return S_OK; } -STDMETHODIMP CDecoder::SetNumberOfThreads(UInt32 /* numThreads */) -{ - return S_OK; -} - STDMETHODIMP CDecoder::ReleaseInStream() { _inStream.Release(); @@ -185,6 +180,11 @@ STDMETHODIMP CDecoder::ReleaseInStream() } #endif +STDMETHODIMP CDecoder::SetNumberOfThreads(UInt32 /* numThreads */) +{ + return S_OK; +} + HRESULT CDecoder::CodeResume(ISequentialOutStream * outStream, const UInt64 * outSize, ICompressProgressInfo * progress) { RINOK(SetOutStreamSizeResume(outSize)); diff --git a/CPP/7zip/UI/Explorer/ContextMenu.cpp b/CPP/7zip/UI/Explorer/ContextMenu.cpp index 4b2e22c7..1e00c4f3 100644 --- a/CPP/7zip/UI/Explorer/ContextMenu.cpp +++ b/CPP/7zip/UI/Explorer/ContextMenu.cpp @@ -221,13 +221,14 @@ struct CHashCommand static const CHashCommand g_HashCommands[] = { - { CZipContextMenu::kHash_CRC32, "CRC-32", "CRC32" }, - { CZipContextMenu::kHash_CRC64, "CRC-64", "CRC64" }, - { CZipContextMenu::kHash_SHA1, "SHA-1", "SHA1" }, - { CZipContextMenu::kHash_SHA256, "SHA-256", "SHA256" }, - { CZipContextMenu::kHash_XXH32, "XXH-32", "XXH32" }, - { CZipContextMenu::kHash_XXH64, "XXH-64", "XXH64" }, - { CZipContextMenu::kHash_All, "*", "*" } + { CZipContextMenu::kHash_CRC32, "CRC-32", "CRC32" }, + { CZipContextMenu::kHash_CRC64, "CRC-64", "CRC64" }, + { CZipContextMenu::kHash_SHA1, "SHA-1", "SHA1" }, + { CZipContextMenu::kHash_SHA256, "SHA-256", "SHA256" }, + { CZipContextMenu::kHash_BLAKE2s, "BLAKE2s", "BLAKE2s" }, + { CZipContextMenu::kHash_XXH32, "XXH-32", "XXH32" }, + { CZipContextMenu::kHash_XXH64, "XXH-64", "XXH64" }, + { CZipContextMenu::kHash_All, "*", "*" } }; static int FindCommand(CZipContextMenu::ECommandInternalID &id) @@ -930,6 +931,7 @@ STDMETHODIMP CZipContextMenu::InvokeCommand(LPCMINVOKECOMMANDINFO commandInfo) case kHash_CRC64: case kHash_SHA1: case kHash_SHA256: + case kHash_BLAKE2s: case kHash_XXH32: case kHash_XXH64: case kHash_All: diff --git a/CPP/7zip/UI/Explorer/ContextMenu.h b/CPP/7zip/UI/Explorer/ContextMenu.h index 58f8b253..914ac35c 100644 --- a/CPP/7zip/UI/Explorer/ContextMenu.h +++ b/CPP/7zip/UI/Explorer/ContextMenu.h @@ -36,6 +36,7 @@ public: kHash_CRC64, kHash_SHA1, kHash_SHA256, + kHash_BLAKE2s, kHash_XXH32, kHash_XXH64, kHash_All diff --git a/CPP/Common/XXH32Reg.cpp b/CPP/Common/XXH32Reg.cpp index a3f1bfa2..c0ccea43 100644 --- a/CPP/Common/XXH32Reg.cpp +++ b/CPP/Common/XXH32Reg.cpp @@ -1,44 +1,44 @@ -// XXH32Reg.cpp - -#include "StdAfx.h" - -#define XXH_STATIC_LINKING_ONLY -#include "../../C/CpuArch.h" -#include "../../C/zstd/xxhash.h" - -#include "../Common/MyCom.h" - -#include "../7zip/Common/RegisterCodec.h" - -class CXXH32Hasher: - public IHasher, - public CMyUnknownImp -{ - XXH32_state_t *_ctx; - Byte mtDummy[1 << 7]; - -public: - CXXH32Hasher() { _ctx = XXH32_createState(); } - ~CXXH32Hasher() { XXH32_freeState(_ctx); } - - MY_UNKNOWN_IMP1(IHasher) - INTERFACE_IHasher(;) -}; - -STDMETHODIMP_(void) CXXH32Hasher::Init() throw() -{ - XXH32_reset(_ctx, 0); -} - -STDMETHODIMP_(void) CXXH32Hasher::Update(const void *data, UInt32 size) throw() -{ - XXH32_update(_ctx, data, size); -} - -STDMETHODIMP_(void) CXXH32Hasher::Final(Byte *digest) throw() -{ - UInt32 val = XXH32_digest(_ctx); - SetUi32(digest, val); -} - -REGISTER_HASHER(CXXH32Hasher, 0x202, "XXH32", 4) +// XXH32Reg.cpp + +#include "StdAfx.h" + +#define XXH_STATIC_LINKING_ONLY +#include "../../C/CpuArch.h" +#include "../../C/zstd/xxhash.h" + +#include "../Common/MyCom.h" + +#include "../7zip/Common/RegisterCodec.h" + +class CXXH32Hasher: + public IHasher, + public CMyUnknownImp +{ + XXH32_state_t *_ctx; + Byte mtDummy[1 << 7]; + +public: + CXXH32Hasher() { _ctx = XXH32_createState(); } + ~CXXH32Hasher() { XXH32_freeState(_ctx); } + + MY_UNKNOWN_IMP1(IHasher) + INTERFACE_IHasher(;) +}; + +STDMETHODIMP_(void) CXXH32Hasher::Init() throw() +{ + XXH32_reset(_ctx, 0); +} + +STDMETHODIMP_(void) CXXH32Hasher::Update(const void *data, UInt32 size) throw() +{ + XXH32_update(_ctx, data, size); +} + +STDMETHODIMP_(void) CXXH32Hasher::Final(Byte *digest) throw() +{ + UInt32 val = XXH32_digest(_ctx); + SetUi32(digest, val); +} + +REGISTER_HASHER(CXXH32Hasher, 0x203, "XXH32", 4) diff --git a/CPP/Common/XXH64Reg.cpp b/CPP/Common/XXH64Reg.cpp index ed924237..9a316d50 100644 --- a/CPP/Common/XXH64Reg.cpp +++ b/CPP/Common/XXH64Reg.cpp @@ -1,44 +1,44 @@ -// XXH64Reg.cpp - -#include "StdAfx.h" - -#define XXH_STATIC_LINKING_ONLY -#include "../../C/CpuArch.h" -#include "../../C/zstd/xxhash.h" - -#include "../Common/MyCom.h" - -#include "../7zip/Common/RegisterCodec.h" - -class CXXH64Hasher: - public IHasher, - public CMyUnknownImp -{ - XXH64_state_t *_ctx; - Byte mtDummy[1 << 7]; - -public: - CXXH64Hasher() { _ctx = XXH64_createState(); } - ~CXXH64Hasher() { XXH64_freeState(_ctx); } - - MY_UNKNOWN_IMP1(IHasher) - INTERFACE_IHasher(;) -}; - -STDMETHODIMP_(void) CXXH64Hasher::Init() throw() -{ - XXH64_reset(_ctx, 0); -} - -STDMETHODIMP_(void) CXXH64Hasher::Update(const void *data, UInt32 size) throw() -{ - XXH64_update(_ctx, data, size); -} - -STDMETHODIMP_(void) CXXH64Hasher::Final(Byte *digest) throw() -{ - UInt64 val = XXH64_digest(_ctx); - SetUi64(digest, val); -} - -REGISTER_HASHER(CXXH64Hasher, 0x203, "XXH64", 8) +// XXH64Reg.cpp + +#include "StdAfx.h" + +#define XXH_STATIC_LINKING_ONLY +#include "../../C/CpuArch.h" +#include "../../C/zstd/xxhash.h" + +#include "../Common/MyCom.h" + +#include "../7zip/Common/RegisterCodec.h" + +class CXXH64Hasher: + public IHasher, + public CMyUnknownImp +{ + XXH64_state_t *_ctx; + Byte mtDummy[1 << 7]; + +public: + CXXH64Hasher() { _ctx = XXH64_createState(); } + ~CXXH64Hasher() { XXH64_freeState(_ctx); } + + MY_UNKNOWN_IMP1(IHasher) + INTERFACE_IHasher(;) +}; + +STDMETHODIMP_(void) CXXH64Hasher::Init() throw() +{ + XXH64_reset(_ctx, 0); +} + +STDMETHODIMP_(void) CXXH64Hasher::Update(const void *data, UInt32 size) throw() +{ + XXH64_update(_ctx, data, size); +} + +STDMETHODIMP_(void) CXXH64Hasher::Final(Byte *digest) throw() +{ + UInt64 val = XXH64_digest(_ctx); + SetUi64(digest, val); +} + +REGISTER_HASHER(CXXH64Hasher, 0x204, "XXH64", 8)