mirror of
https://github.com/Xevion/easy7zip.git
synced 2025-12-12 07:09:54 -06:00
4.47 beta
This commit is contained in:
committed by
Kornel Lesiński
parent
c574fc0f4b
commit
0b33f700a6
@@ -420,8 +420,6 @@ static UInt32 NO_INLINE DecodeBlock2Rand(const UInt32 *tt, UInt32 blockSize, UIn
|
|||||||
|
|
||||||
#ifdef COMPRESS_BZIP2_MT
|
#ifdef COMPRESS_BZIP2_MT
|
||||||
|
|
||||||
static THREAD_FUNC_DECL MFThread(void *p) { ((CState *)p)->ThreadFunc(); return 0; }
|
|
||||||
|
|
||||||
CDecoder::CDecoder():
|
CDecoder::CDecoder():
|
||||||
m_States(0)
|
m_States(0)
|
||||||
{
|
{
|
||||||
@@ -439,7 +437,7 @@ HRes CDecoder::Create()
|
|||||||
RINOK(CanProcessEvent.CreateIfNotCreated());
|
RINOK(CanProcessEvent.CreateIfNotCreated());
|
||||||
RINOK(CanStartWaitingEvent.CreateIfNotCreated());
|
RINOK(CanStartWaitingEvent.CreateIfNotCreated());
|
||||||
if (m_States != 0 && m_NumThreadsPrev == NumThreads)
|
if (m_States != 0 && m_NumThreadsPrev == NumThreads)
|
||||||
return true;
|
return S_OK;
|
||||||
Free();
|
Free();
|
||||||
MtMode = (NumThreads > 1);
|
MtMode = (NumThreads > 1);
|
||||||
m_NumThreadsPrev = NumThreads;
|
m_NumThreadsPrev = NumThreads;
|
||||||
@@ -450,14 +448,13 @@ HRes CDecoder::Create()
|
|||||||
return E_OUTOFMEMORY;
|
return E_OUTOFMEMORY;
|
||||||
}
|
}
|
||||||
catch(...) { return E_OUTOFMEMORY; }
|
catch(...) { return E_OUTOFMEMORY; }
|
||||||
#ifdef COMPRESS_BZIP2_MT
|
|
||||||
for (UInt32 t = 0; t < NumThreads; t++)
|
for (UInt32 t = 0; t < NumThreads; t++)
|
||||||
{
|
{
|
||||||
CState &ti = m_States[t];
|
CState &ti = m_States[t];
|
||||||
ti.Decoder = this;
|
ti.Decoder = this;
|
||||||
if (MtMode)
|
if (MtMode)
|
||||||
{
|
{
|
||||||
HRes res = ti.Thread.Create(MFThread, &ti);
|
HRes res = ti.Create();
|
||||||
if (res != S_OK)
|
if (res != S_OK)
|
||||||
{
|
{
|
||||||
NumThreads = t;
|
NumThreads = t;
|
||||||
@@ -466,7 +463,6 @@ HRes CDecoder::Create()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
return S_OK;
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -528,7 +524,6 @@ HRESULT CDecoder::DecodeFile(bool &isBZ, ICompressProgressInfo *progress)
|
|||||||
CState &s = m_States[t];
|
CState &s = m_States[t];
|
||||||
if (!s.Alloc())
|
if (!s.Alloc())
|
||||||
return E_OUTOFMEMORY;
|
return E_OUTOFMEMORY;
|
||||||
RINOK(s.Create());
|
|
||||||
s.StreamWasFinishedEvent.Reset();
|
s.StreamWasFinishedEvent.Reset();
|
||||||
s.WaitingWasStartedEvent.Reset();
|
s.WaitingWasStartedEvent.Reset();
|
||||||
s.CanWriteEvent.Reset();
|
s.CanWriteEvent.Reset();
|
||||||
@@ -649,6 +644,17 @@ STDMETHODIMP CDecoder::GetInStreamProcessedSize(UInt64 *value)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifdef COMPRESS_BZIP2_MT
|
#ifdef COMPRESS_BZIP2_MT
|
||||||
|
|
||||||
|
static THREAD_FUNC_DECL MFThread(void *p) { ((CState *)p)->ThreadFunc(); return 0; }
|
||||||
|
|
||||||
|
HRes CState::Create()
|
||||||
|
{
|
||||||
|
RINOK(StreamWasFinishedEvent.CreateIfNotCreated());
|
||||||
|
RINOK(WaitingWasStartedEvent.CreateIfNotCreated());
|
||||||
|
RINOK(CanWriteEvent.CreateIfNotCreated());
|
||||||
|
return Thread.Create(MFThread, this);
|
||||||
|
}
|
||||||
|
|
||||||
void CState::FinishStream()
|
void CState::FinishStream()
|
||||||
{
|
{
|
||||||
Decoder->StreamWasFinished1 = true;
|
Decoder->StreamWasFinished1 = true;
|
||||||
|
|||||||
@@ -50,15 +50,10 @@ struct CState
|
|||||||
|
|
||||||
Byte MtPad[1 << 8]; // It's pad for Multi-Threading. Must be >= Cache_Line_Size.
|
Byte MtPad[1 << 8]; // It's pad for Multi-Threading. Must be >= Cache_Line_Size.
|
||||||
|
|
||||||
|
HRes Create();
|
||||||
void FinishStream();
|
void FinishStream();
|
||||||
void ThreadFunc();
|
void ThreadFunc();
|
||||||
|
|
||||||
HRes Create()
|
|
||||||
{
|
|
||||||
RINOK(StreamWasFinishedEvent.CreateIfNotCreated());
|
|
||||||
RINOK(WaitingWasStartedEvent.CreateIfNotCreated());
|
|
||||||
return CanWriteEvent.CreateIfNotCreated();
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
CState(): Counters(0) {}
|
CState(): Counters(0) {}
|
||||||
|
|||||||
@@ -55,6 +55,20 @@ void CThreadInfo::Free()
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifdef COMPRESS_BZIP2_MT
|
#ifdef COMPRESS_BZIP2_MT
|
||||||
|
|
||||||
|
static THREAD_FUNC_DECL MFThread(void *threadCoderInfo)
|
||||||
|
{
|
||||||
|
return ((CThreadInfo *)threadCoderInfo)->ThreadFunc();
|
||||||
|
}
|
||||||
|
|
||||||
|
HRes CThreadInfo::Create()
|
||||||
|
{
|
||||||
|
RINOK(StreamWasFinishedEvent.Create());
|
||||||
|
RINOK(WaitingWasStartedEvent.Create());
|
||||||
|
RINOK(CanWriteEvent.Create());
|
||||||
|
return Thread.Create(MFThread, this);
|
||||||
|
}
|
||||||
|
|
||||||
void CThreadInfo::FinishStream(bool needLeave)
|
void CThreadInfo::FinishStream(bool needLeave)
|
||||||
{
|
{
|
||||||
Encoder->StreamWasFinished = true;
|
Encoder->StreamWasFinished = true;
|
||||||
@@ -111,10 +125,6 @@ DWORD CThreadInfo::ThreadFunc()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static THREAD_FUNC_DECL MFThread(void *threadCoderInfo)
|
|
||||||
{
|
|
||||||
return ((CThreadInfo *)threadCoderInfo)->ThreadFunc();
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
CEncoder::CEncoder():
|
CEncoder::CEncoder():
|
||||||
@@ -157,7 +167,7 @@ HRes CEncoder::Create()
|
|||||||
ti.Encoder = this;
|
ti.Encoder = this;
|
||||||
if (MtMode)
|
if (MtMode)
|
||||||
{
|
{
|
||||||
HRes res = ti.Thread.Create(MFThread, &ti);
|
HRes res = ti.Create();
|
||||||
if (res != S_OK)
|
if (res != S_OK)
|
||||||
{
|
{
|
||||||
NumThreads = t;
|
NumThreads = t;
|
||||||
@@ -735,7 +745,6 @@ HRESULT CEncoder::CodeReal(ISequentialInStream *inStream,
|
|||||||
|
|
||||||
if (!ti.Alloc())
|
if (!ti.Alloc())
|
||||||
return E_OUTOFMEMORY;
|
return E_OUTOFMEMORY;
|
||||||
RINOK(ti.Create());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -105,8 +105,6 @@ private:
|
|||||||
|
|
||||||
int m_BlockIndex;
|
int m_BlockIndex;
|
||||||
|
|
||||||
void FinishStream(bool needLeave);
|
|
||||||
|
|
||||||
void WriteBits2(UInt32 value, UInt32 numBits);
|
void WriteBits2(UInt32 value, UInt32 numBits);
|
||||||
void WriteByte2(Byte b);
|
void WriteByte2(Byte b);
|
||||||
void WriteBit2(bool v);
|
void WriteBit2(bool v);
|
||||||
@@ -130,12 +128,9 @@ public:
|
|||||||
UInt64 m_PackSize;
|
UInt64 m_PackSize;
|
||||||
|
|
||||||
Byte MtPad[1 << 8]; // It's pad for Multi-Threading. Must be >= Cache_Line_Size.
|
Byte MtPad[1 << 8]; // It's pad for Multi-Threading. Must be >= Cache_Line_Size.
|
||||||
HRes Create()
|
HRes Create();
|
||||||
{
|
void FinishStream(bool needLeave);
|
||||||
RINOK(StreamWasFinishedEvent.Create());
|
DWORD ThreadFunc();
|
||||||
RINOK(WaitingWasStartedEvent.Create());
|
|
||||||
return CanWriteEvent.Create();
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
CThreadInfo(): m_BlockSorterIndex(0), m_Block(0) {}
|
CThreadInfo(): m_BlockSorterIndex(0), m_Block(0) {}
|
||||||
@@ -144,7 +139,6 @@ public:
|
|||||||
void Free();
|
void Free();
|
||||||
|
|
||||||
HRESULT EncodeBlock3(UInt32 blockSize);
|
HRESULT EncodeBlock3(UInt32 blockSize);
|
||||||
DWORD ThreadFunc();
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class CEncoder :
|
class CEncoder :
|
||||||
@@ -230,7 +224,7 @@ public:
|
|||||||
#ifdef COMPRESS_BZIP2_MT
|
#ifdef COMPRESS_BZIP2_MT
|
||||||
MY_UNKNOWN_IMP2(ICompressSetCoderMt, ICompressSetCoderProperties)
|
MY_UNKNOWN_IMP2(ICompressSetCoderMt, ICompressSetCoderProperties)
|
||||||
#else
|
#else
|
||||||
MY_UNKNOWN_IMP1(ICompressGetInStreamProcessedSize)
|
MY_UNKNOWN_IMP1(ICompressSetCoderProperties)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
HRESULT CodeReal(ISequentialInStream *inStream,
|
HRESULT CodeReal(ISequentialInStream *inStream,
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
#define MY_VER_MAJOR 4
|
#define MY_VER_MAJOR 4
|
||||||
#define MY_VER_MINOR 46
|
#define MY_VER_MINOR 47
|
||||||
#define MY_VER_BUILD 2
|
#define MY_VER_BUILD 0
|
||||||
#define MY_VERSION "4.46 beta"
|
#define MY_VERSION "4.47 beta"
|
||||||
#define MY_7ZIP_VERSION "7-Zip 4.46 beta"
|
#define MY_7ZIP_VERSION "7-Zip 4.47 beta"
|
||||||
#define MY_DATE "2007-05-25"
|
#define MY_DATE "2007-05-27"
|
||||||
#define MY_COPYRIGHT "Copyright (c) 1999-2007 Igor Pavlov"
|
#define MY_COPYRIGHT "Copyright (c) 1999-2007 Igor Pavlov"
|
||||||
#define MY_VERSION_COPYRIGHT_DATE MY_VERSION " " MY_COPYRIGHT " " MY_DATE
|
#define MY_VERSION_COPYRIGHT_DATE MY_VERSION " " MY_COPYRIGHT " " MY_DATE
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
;Defines
|
;Defines
|
||||||
|
|
||||||
!define VERSION_MAJOR 4
|
!define VERSION_MAJOR 4
|
||||||
!define VERSION_MINOR 46
|
!define VERSION_MINOR 47
|
||||||
!define VERSION_POSTFIX_FULL " beta"
|
!define VERSION_POSTFIX_FULL " beta"
|
||||||
!ifdef WIN64
|
!ifdef WIN64
|
||||||
!ifdef IA64
|
!ifdef IA64
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<?xml version="1.0"?>
|
<?xml version="1.0"?>
|
||||||
|
|
||||||
<?define VerMajor = "4" ?>
|
<?define VerMajor = "4" ?>
|
||||||
<?define VerMinor = "46" ?>
|
<?define VerMinor = "47" ?>
|
||||||
<?define VerBuild = "00" ?>
|
<?define VerBuild = "00" ?>
|
||||||
<?define MmVer = "$(var.VerMajor).$(var.VerMinor)" ?>
|
<?define MmVer = "$(var.VerMajor).$(var.VerMinor)" ?>
|
||||||
<?define MmHex = "0$(var.VerMajor)$(var.VerMinor)" ?>
|
<?define MmHex = "0$(var.VerMajor)$(var.VerMinor)" ?>
|
||||||
|
|||||||
@@ -1,6 +1,11 @@
|
|||||||
Sources history of the 7-Zip
|
Sources history of the 7-Zip
|
||||||
----------------------------
|
----------------------------
|
||||||
|
|
||||||
|
Version 4.46 beta 2007-05-25
|
||||||
|
--------------------------------------
|
||||||
|
- CPP Synchronization objects now return HRes (error code) instead of bool.
|
||||||
|
|
||||||
|
|
||||||
Version 4.45 beta 2007-04-16
|
Version 4.45 beta 2007-04-16
|
||||||
--------------------------------------
|
--------------------------------------
|
||||||
- 7-Zip now uses C version of CRC, so you must call CrcGenerateTable at
|
- 7-Zip now uses C version of CRC, so you must call CrcGenerateTable at
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
LZMA SDK 4.44
|
LZMA SDK 4.46
|
||||||
-------------
|
-------------
|
||||||
|
|
||||||
LZMA SDK Copyright (C) 1999-2007 Igor Pavlov
|
LZMA SDK Copyright (C) 1999-2007 Igor Pavlov
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
7-Zip 4.46 Sources
|
7-Zip 4.47 Sources
|
||||||
------------------
|
------------------
|
||||||
|
|
||||||
7-Zip is a file archiver for Windows 95/98/ME/NT/2000/2003/XP/Vista.
|
7-Zip is a file archiver for Windows 95/98/ME/NT/2000/2003/XP/Vista.
|
||||||
|
|||||||
Reference in New Issue
Block a user