Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/kornelski/7z.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'CPP/7zip/Compress/LZMA_Alone')
-rwxr-xr-xCPP/7zip/Compress/LZMA_Alone/AloneLZMA.dsp76
-rwxr-xr-xCPP/7zip/Compress/LZMA_Alone/LzmaAlone.cpp72
-rwxr-xr-xCPP/7zip/Compress/LZMA_Alone/LzmaBench.cpp10
-rwxr-xr-xCPP/7zip/Compress/LZMA_Alone/LzmaRam.cpp226
-rwxr-xr-xCPP/7zip/Compress/LZMA_Alone/LzmaRam.h46
-rwxr-xr-xCPP/7zip/Compress/LZMA_Alone/LzmaRamDecode.c78
-rwxr-xr-xCPP/7zip/Compress/LZMA_Alone/LzmaRamDecode.h55
-rwxr-xr-xCPP/7zip/Compress/LZMA_Alone/makefile85
-rwxr-xr-xCPP/7zip/Compress/LZMA_Alone/makefile.gcc44
9 files changed, 104 insertions, 588 deletions
diff --git a/CPP/7zip/Compress/LZMA_Alone/AloneLZMA.dsp b/CPP/7zip/Compress/LZMA_Alone/AloneLZMA.dsp
index 39fee934..a09c3069 100755
--- a/CPP/7zip/Compress/LZMA_Alone/AloneLZMA.dsp
+++ b/CPP/7zip/Compress/LZMA_Alone/AloneLZMA.dsp
@@ -371,134 +371,132 @@ SOURCE=..\..\Common\StreamUtils.h
# Begin Group "C"
# PROP Default_Filter ""
-# Begin Group "C-Lz"
+# Begin Group "LzmaUtil"
# PROP Default_Filter ""
# Begin Source File
-SOURCE=..\..\..\..\C\Compress\Lz\MatchFinder.c
+SOURCE=..\..\..\..\C\LzmaUtil\Lzma86Dec.c
# SUBTRACT CPP /YX /Yc /Yu
# End Source File
# Begin Source File
-SOURCE=..\..\..\..\C\Compress\Lz\MatchFinder.h
+SOURCE=..\..\..\..\C\LzmaUtil\Lzma86Dec.h
# End Source File
# Begin Source File
-SOURCE=..\..\..\..\C\Compress\Lz\MatchFinderMt.c
+SOURCE=..\..\..\..\C\LzmaUtil\Lzma86Enc.c
# SUBTRACT CPP /YX /Yc /Yu
# End Source File
# Begin Source File
-SOURCE=..\..\..\..\C\Compress\Lz\MatchFinderMt.h
+SOURCE=..\..\..\..\C\LzmaUtil\Lzma86Enc.h
# End Source File
+# End Group
# Begin Source File
-SOURCE=..\..\..\..\C\Threads.c
+SOURCE=..\..\..\..\C\7zCrc.c
# SUBTRACT CPP /YX /Yc /Yu
# End Source File
# Begin Source File
-SOURCE=..\..\..\..\C\Threads.h
+SOURCE=..\..\..\..\C\7zCrc.h
# End Source File
-# End Group
-# Begin Group "LZMA_C"
-
-# PROP Default_Filter ""
# Begin Source File
-SOURCE=..\..\..\..\C\Compress\Lzma\LzmaDecode.c
+SOURCE=..\..\..\..\C\Alloc.c
# SUBTRACT CPP /YX /Yc /Yu
# End Source File
# Begin Source File
-SOURCE=..\..\..\..\C\Compress\Lzma\LzmaDecode.h
+SOURCE=..\..\..\..\C\Alloc.h
# End Source File
# Begin Source File
-SOURCE=..\..\..\..\C\Compress\Lzma\LzmaTypes.h
+SOURCE=..\..\..\..\C\Bra.h
# End Source File
-# End Group
-# Begin Group "Branch"
-
-# PROP Default_Filter ""
# Begin Source File
-SOURCE=..\..\..\..\C\Compress\Branch\BranchTypes.h
+SOURCE=..\..\..\..\C\Bra86.c
+# SUBTRACT CPP /YX /Yc /Yu
# End Source File
# Begin Source File
-SOURCE=..\..\..\..\C\Compress\Branch\BranchX86.c
+SOURCE=..\..\..\..\C\LzFind.c
# SUBTRACT CPP /YX /Yc /Yu
# End Source File
# Begin Source File
-SOURCE=..\..\..\..\C\Compress\Branch\BranchX86.h
+SOURCE=..\..\..\..\C\LzFind.h
# End Source File
-# End Group
# Begin Source File
-SOURCE=..\..\..\..\C\7zCrc.c
+SOURCE=..\..\..\..\C\LzFindMt.c
# SUBTRACT CPP /YX /Yc /Yu
# End Source File
# Begin Source File
-SOURCE=..\..\..\..\C\7zCrc.h
+SOURCE=..\..\..\..\C\LzFindMt.h
# End Source File
# Begin Source File
-SOURCE=..\..\..\..\C\Alloc.c
+SOURCE=..\..\..\..\C\LzHash.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\C\LzmaDec.c
# SUBTRACT CPP /YX /Yc /Yu
# End Source File
# Begin Source File
-SOURCE=..\..\..\..\C\Alloc.h
+SOURCE=..\..\..\..\C\LzmaDec.h
# End Source File
# Begin Source File
-SOURCE=..\..\..\..\C\Types.h
+SOURCE=..\..\..\..\C\LzmaEnc.c
+# SUBTRACT CPP /YX /Yc /Yu
# End Source File
-# End Group
# Begin Source File
-SOURCE=..\..\ICoder.h
+SOURCE=..\..\..\..\C\LzmaEnc.h
# End Source File
# Begin Source File
-SOURCE=.\LzmaAlone.cpp
+SOURCE=..\..\..\..\C\Threads.c
+# SUBTRACT CPP /YX /Yc /Yu
# End Source File
# Begin Source File
-SOURCE=.\LzmaBench.cpp
+SOURCE=..\..\..\..\C\Threads.h
# End Source File
# Begin Source File
-SOURCE=.\LzmaBench.h
+SOURCE=..\..\..\..\C\Types.h
# End Source File
+# End Group
# Begin Source File
-SOURCE=.\LzmaBenchCon.cpp
+SOURCE=..\..\ICoder.h
# End Source File
# Begin Source File
-SOURCE=.\LzmaBenchCon.h
+SOURCE=.\LzmaAlone.cpp
# End Source File
# Begin Source File
-SOURCE=.\LzmaRam.cpp
+SOURCE=.\LzmaBench.cpp
# End Source File
# Begin Source File
-SOURCE=.\LzmaRam.h
+SOURCE=.\LzmaBench.h
# End Source File
# Begin Source File
-SOURCE=.\LzmaRamDecode.c
-# SUBTRACT CPP /YX /Yc /Yu
+SOURCE=.\LzmaBenchCon.cpp
# End Source File
# Begin Source File
-SOURCE=.\LzmaRamDecode.h
+SOURCE=.\LzmaBenchCon.h
# End Source File
# End Target
# End Project
diff --git a/CPP/7zip/Compress/LZMA_Alone/LzmaAlone.cpp b/CPP/7zip/Compress/LZMA_Alone/LzmaAlone.cpp
index 0e83f576..0d2800bd 100755
--- a/CPP/7zip/Compress/LZMA_Alone/LzmaAlone.cpp
+++ b/CPP/7zip/Compress/LZMA_Alone/LzmaAlone.cpp
@@ -26,15 +26,19 @@
#include "../LZMA/LZMAEncoder.h"
#include "LzmaBenchCon.h"
-#include "LzmaRam.h"
#ifdef COMPRESS_MF_MT
#include "../../../Windows/System.h"
#endif
+#include "../../MyVersion.h"
+
+
extern "C"
{
-#include "LzmaRamDecode.h"
+ #include "../../../../C/Alloc.h"
+ #include "../../../../C/LzmaUtil/Lzma86Dec.h"
+ #include "../../../../C/LzmaUtil/Lzma86Enc.h"
}
using namespace NCommandLineParser;
@@ -105,7 +109,7 @@ static void PrintHelp()
" b: Benchmark\n"
"<Switches>\n"
" -a{N}: set compression mode - [0, 1], default: 1 (max)\n"
- " -d{N}: set dictionary - [0,30], default: 23 (8MB)\n"
+ " -d{N}: set dictionary - [12, 30], default: 23 (8MB)\n"
" -fb{N}: set number of fast bytes - [5, 273], default: 128\n"
" -mc{N}: set number of cycles for match finder\n"
" -lc{N}: set number of literal context bits - [0, 8], default: 3\n"
@@ -159,7 +163,7 @@ int main2(int n, const char *args[])
g_IsNT = IsItWindowsNT();
#endif
- fprintf(stderr, "\nLZMA 4.56 Copyright (c) 1999-2007 Igor Pavlov 2007-10-19\n");
+ fprintf(stderr, "\nLZMA " MY_VERSION_COPYRIGHT_DATE "\n");
if (n == 1)
{
@@ -306,7 +310,7 @@ int main2(int n, const char *args[])
inStreamSpec->File.GetLength(fileSize);
if (fileSize > 0xF0000000)
throw "File is too big";
- UInt32 inSize = (UInt32)fileSize;
+ size_t inSize = (size_t)fileSize;
Byte *inBuffer = 0;
if (inSize != 0)
{
@@ -315,18 +319,15 @@ int main2(int n, const char *args[])
throw kCantAllocate;
}
- UInt32 processedSize;
- if (ReadStream(inStream, inBuffer, (UInt32)inSize, &processedSize) != S_OK)
+ if (ReadStream_FAIL(inStream, inBuffer, inSize) != S_OK)
throw "Can not read";
- if ((UInt32)inSize != processedSize)
- throw "Read size error";
Byte *outBuffer = 0;
- size_t outSizeProcessed;
+ size_t outSize;
if (encodeMode)
{
// we allocate 105% of original size for output buffer
- size_t outSize = (size_t)fileSize / 20 * 21 + (1 << 16);
+ outSize = (size_t)fileSize / 20 * 21 + (1 << 16);
if (outSize != 0)
{
outBuffer = (Byte *)MyAlloc((size_t)outSize);
@@ -335,8 +336,8 @@ int main2(int n, const char *args[])
}
if (!dictionaryIsDefined)
dictionary = 1 << 23;
- int res = LzmaRamEncode(inBuffer, inSize, outBuffer, outSize, &outSizeProcessed,
- dictionary, parser[NKey::kFilter86].PostCharIndex == 0 ? SZ_FILTER_YES : SZ_FILTER_AUTO);
+ int res = Lzma86_Encode(outBuffer, &outSize, inBuffer, inSize,
+ 5, dictionary, parser[NKey::kFilter86].PostCharIndex == 0 ? SZ_FILTER_YES : SZ_FILTER_AUTO);
if (res != 0)
{
fprintf(stderr, "\nEncoder error = %d\n", (int)res);
@@ -345,20 +346,25 @@ int main2(int n, const char *args[])
}
else
{
- size_t outSize;
- if (LzmaRamGetUncompressedSize(inBuffer, inSize, &outSize) != 0)
+ UInt64 outSize64;
+ if (Lzma86_GetUnpackSize(inBuffer, inSize, &outSize64) != 0)
throw "data error";
+ outSize = (size_t)outSize64;
+ if (outSize != outSize64)
+ throw "too big";
if (outSize != 0)
{
outBuffer = (Byte *)MyAlloc(outSize);
if (outBuffer == 0)
throw kCantAllocate;
}
- int res = LzmaRamDecompress(inBuffer, inSize, outBuffer, outSize, &outSizeProcessed, malloc, free);
+ int res = Lzma86_Decode(outBuffer, &outSize, inBuffer, &inSize);
+ if (inSize != (size_t)fileSize)
+ throw "incorrect processed size";
if (res != 0)
throw "LzmaDecoder error";
}
- if (WriteStream(outStream, outBuffer, (UInt32)outSizeProcessed, &processedSize) != S_OK)
+ if (WriteStream(outStream, outBuffer, outSize) != S_OK)
throw kWriteError;
MyFree(outBuffer);
MyFree(inBuffer);
@@ -486,40 +492,22 @@ int main2(int n, const char *args[])
NCompress::NLZMA::CDecoder *decoderSpec = new NCompress::NLZMA::CDecoder;
CMyComPtr<ICompressCoder> decoder = decoderSpec;
const UInt32 kPropertiesSize = 5;
- Byte properties[kPropertiesSize];
- UInt32 processedSize;
- if (ReadStream(inStream, properties, kPropertiesSize, &processedSize) != S_OK)
- {
- fprintf(stderr, kReadError);
- return 1;
- }
- if (processedSize != kPropertiesSize)
+ Byte header[kPropertiesSize + 8];
+ if (ReadStream_FALSE(inStream, header, kPropertiesSize + 8) != S_OK)
{
fprintf(stderr, kReadError);
return 1;
}
- if (decoderSpec->SetDecoderProperties2(properties, kPropertiesSize) != S_OK)
+ if (decoderSpec->SetDecoderProperties2(header, kPropertiesSize) != S_OK)
{
fprintf(stderr, "SetDecoderProperties error");
return 1;
}
fileSize = 0;
for (int i = 0; i < 8; i++)
- {
- Byte b;
- if (inStream->Read(&b, 1, &processedSize) != S_OK)
- {
- fprintf(stderr, kReadError);
- return 1;
- }
- if (processedSize != 1)
- {
- fprintf(stderr, kReadError);
- return 1;
- }
- fileSize |= ((UInt64)b) << (8 * i);
- }
- if (decoder->Code(inStream, outStream, 0, &fileSize, 0) != S_OK)
+ fileSize |= ((UInt64)header[kPropertiesSize + i]) << (8 * i);
+
+ if (decoder->Code(inStream, outStream, 0, (fileSize == (UInt64)(Int64)-1) ? 0 : &fileSize, 0) != S_OK)
{
fprintf(stderr, "Decoder error");
return 1;
@@ -536,7 +524,7 @@ int main2(int n, const char *args[])
return 0;
}
-int main(int n, const char *args[])
+int MY_CDECL main(int n, const char *args[])
{
try { return main2(n, args); }
catch(const char *s)
diff --git a/CPP/7zip/Compress/LZMA_Alone/LzmaBench.cpp b/CPP/7zip/Compress/LZMA_Alone/LzmaBench.cpp
index 4cd2d63e..cbb0aa86 100755
--- a/CPP/7zip/Compress/LZMA_Alone/LzmaBench.cpp
+++ b/CPP/7zip/Compress/LZMA_Alone/LzmaBench.cpp
@@ -438,17 +438,14 @@ static UInt64 MyMultDiv64(UInt64 value, UInt64 elapsedTime, UInt64 freq)
UInt64 GetCompressRating(UInt32 dictionarySize, UInt64 elapsedTime, UInt64 freq, UInt64 size)
{
UInt64 t = GetLogSize(dictionarySize) - (kBenchMinDicLogSize << kSubBits);
- // UInt64 numCommandsForOne = 1000 + ((t * t * 7) >> (2 * kSubBits)); // AMD K8
- UInt64 numCommandsForOne = 870 + ((t * t * 5) >> (2 * kSubBits)); // Intel Core2
-
+ UInt64 numCommandsForOne = 870 + ((t * t * 5) >> (2 * kSubBits));
UInt64 numCommands = (UInt64)(size) * numCommandsForOne;
return MyMultDiv64(numCommands, elapsedTime, freq);
}
UInt64 GetDecompressRating(UInt64 elapsedTime, UInt64 freq, UInt64 outSize, UInt64 inSize, UInt32 numIterations)
{
- // UInt64 numCommands = (inSize * 216 + outSize * 14) * numIterations; // AMD K8
- UInt64 numCommands = (inSize * 220 + outSize * 8) * numIterations; // Intel Core2
+ UInt64 numCommands = (inSize * 200 + outSize * 4) * numIterations;
return MyMultDiv64(numCommands, elapsedTime, freq);
}
@@ -796,10 +793,9 @@ HRESULT LzmaBench(
{
for (UInt32 j = 0; j < numSubDecoderThreads; j++)
{
- size_t allocaSize = ((i * numSubDecoderThreads + j) * 16 * 21) & 0x7FF;
HRESULT res = encoder.CreateDecoderThread(j, (i == 0 && j == 0)
#ifdef USE_ALLOCA
- , allocaSize
+ , ((i * numSubDecoderThreads + j) * 16 * 21) & 0x7FF
#endif
);
RINOK(res);
diff --git a/CPP/7zip/Compress/LZMA_Alone/LzmaRam.cpp b/CPP/7zip/Compress/LZMA_Alone/LzmaRam.cpp
deleted file mode 100755
index b86d1ea9..00000000
--- a/CPP/7zip/Compress/LZMA_Alone/LzmaRam.cpp
+++ /dev/null
@@ -1,226 +0,0 @@
-// LzmaRam.cpp
-
-#include "StdAfx.h"
-#include "../../../Common/Types.h"
-#include "../LZMA/LZMADecoder.h"
-#include "../LZMA/LZMAEncoder.h"
-#include "LzmaRam.h"
-
-extern "C"
-{
- #include "../../../../C/Compress/Branch/BranchX86.h"
-}
-
-class CInStreamRam:
- public ISequentialInStream,
- public CMyUnknownImp
-{
- const Byte *Data;
- size_t Size;
- size_t Pos;
-public:
- MY_UNKNOWN_IMP
- void Init(const Byte *data, size_t size)
- {
- Data = data;
- Size = size;
- Pos = 0;
- }
- STDMETHOD(Read)(void *data, UInt32 size, UInt32 *processedSize);
-};
-
-STDMETHODIMP CInStreamRam::Read(void *data, UInt32 size, UInt32 *processedSize)
-{
- if (size > (Size - Pos))
- size = (UInt32)(Size - Pos);
- for (UInt32 i = 0; i < size; i++)
- ((Byte *)data)[i] = Data[Pos + i];
- Pos += size;
- if(processedSize != NULL)
- *processedSize = size;
- return S_OK;
-}
-
-class COutStreamRam:
- public ISequentialOutStream,
- public CMyUnknownImp
-{
- size_t Size;
-public:
- Byte *Data;
- size_t Pos;
- bool Overflow;
- void Init(Byte *data, size_t size)
- {
- Data = data;
- Size = size;
- Pos = 0;
- Overflow = false;
- }
- void SetPos(size_t pos)
- {
- Overflow = false;
- Pos = pos;
- }
- MY_UNKNOWN_IMP
- HRESULT WriteByte(Byte b)
- {
- if (Pos >= Size)
- {
- Overflow = true;
- return E_FAIL;
- }
- Data[Pos++] = b;
- return S_OK;
- }
- STDMETHOD(Write)(const void *data, UInt32 size, UInt32 *processedSize);
-};
-
-STDMETHODIMP COutStreamRam::Write(const void *data, UInt32 size, UInt32 *processedSize)
-{
- UInt32 i;
- for (i = 0; i < size && Pos < Size; i++)
- Data[Pos++] = ((const Byte *)data)[i];
- if(processedSize != NULL)
- *processedSize = i;
- if (i != size)
- {
- Overflow = true;
- return E_FAIL;
- }
- return S_OK;
-}
-
-#define SZ_RAM_E_FAIL (1)
-#define SZ_RAM_E_OUTOFMEMORY (2)
-#define SZE_OUT_OVERFLOW (3)
-
-int LzmaRamEncode(
- const Byte *inBuffer, size_t inSize,
- Byte *outBuffer, size_t outSize, size_t *outSizeProcessed,
- UInt32 dictionarySize, ESzFilterMode filterMode)
-{
- #ifndef _NO_EXCEPTIONS
- try {
- #endif
-
- *outSizeProcessed = 0;
- const size_t kIdSize = 1;
- const size_t kLzmaPropsSize = 5;
- const size_t kMinDestSize = kIdSize + kLzmaPropsSize + 8;
- if (outSize < kMinDestSize)
- return SZE_OUT_OVERFLOW;
- NCompress::NLZMA::CEncoder *encoderSpec = new NCompress::NLZMA::CEncoder;
- CMyComPtr<ICompressCoder> encoder = encoderSpec;
-
- PROPID propIDs[] =
- {
- NCoderPropID::kAlgorithm,
- NCoderPropID::kDictionarySize,
- NCoderPropID::kNumFastBytes,
- };
- const int kNumProps = sizeof(propIDs) / sizeof(propIDs[0]);
- PROPVARIANT properties[kNumProps];
- properties[0].vt = VT_UI4;
- properties[1].vt = VT_UI4;
- properties[2].vt = VT_UI4;
- properties[0].ulVal = (UInt32)2;
- properties[1].ulVal = (UInt32)dictionarySize;
- properties[2].ulVal = (UInt32)64;
-
- if (encoderSpec->SetCoderProperties(propIDs, properties, kNumProps) != S_OK)
- return 1;
-
- COutStreamRam *outStreamSpec = new COutStreamRam;
- if (outStreamSpec == 0)
- return SZ_RAM_E_OUTOFMEMORY;
- CMyComPtr<ISequentialOutStream> outStream = outStreamSpec;
- CInStreamRam *inStreamSpec = new CInStreamRam;
- if (inStreamSpec == 0)
- return SZ_RAM_E_OUTOFMEMORY;
- CMyComPtr<ISequentialInStream> inStream = inStreamSpec;
-
- outStreamSpec->Init(outBuffer, outSize);
- if (outStreamSpec->WriteByte(0) != S_OK)
- return SZE_OUT_OVERFLOW;
-
- if (encoderSpec->WriteCoderProperties(outStream) != S_OK)
- return SZE_OUT_OVERFLOW;
- if (outStreamSpec->Pos != kIdSize + kLzmaPropsSize)
- return 1;
-
- int i;
- for (i = 0; i < 8; i++)
- {
- UInt64 t = (UInt64)(inSize);
- if (outStreamSpec->WriteByte((Byte)((t) >> (8 * i))) != S_OK)
- return SZE_OUT_OVERFLOW;
- }
-
- Byte *filteredStream = 0;
-
- bool useFilter = (filterMode != SZ_FILTER_NO);
- if (useFilter)
- {
- if (inSize != 0)
- {
- filteredStream = (Byte *)MyAlloc(inSize);
- if (filteredStream == 0)
- return SZ_RAM_E_OUTOFMEMORY;
- memmove(filteredStream, inBuffer, inSize);
- }
- UInt32 x86State;
- x86_Convert_Init(x86State);
- x86_Convert(filteredStream, (SizeT)inSize, 0, &x86State, 1);
- }
-
- size_t minSize = 0;
- int numPasses = (filterMode == SZ_FILTER_AUTO) ? 3 : 1;
- bool bestIsFiltered = false;
- int mainResult = 0;
- size_t startPos = outStreamSpec->Pos;
- for (i = 0; i < numPasses; i++)
- {
- if (numPasses > 1 && i == numPasses - 1 && !bestIsFiltered)
- break;
- outStreamSpec->SetPos(startPos);
- bool curModeIsFiltered = false;
- if (useFilter && i == 0)
- curModeIsFiltered = true;
- if (numPasses > 1 && i == numPasses - 1)
- curModeIsFiltered = true;
-
- inStreamSpec->Init(curModeIsFiltered ? filteredStream : inBuffer, inSize);
-
- HRESULT lzmaResult = encoder->Code(inStream, outStream, 0, 0, 0);
-
- mainResult = 0;
- if (lzmaResult == E_OUTOFMEMORY)
- {
- mainResult = SZ_RAM_E_OUTOFMEMORY;
- break;
- }
- if (i == 0 || outStreamSpec->Pos <= minSize)
- {
- minSize = outStreamSpec->Pos;
- bestIsFiltered = curModeIsFiltered;
- }
- if (outStreamSpec->Overflow)
- mainResult = SZE_OUT_OVERFLOW;
- else if (lzmaResult != S_OK)
- {
- mainResult = SZ_RAM_E_FAIL;
- break;
- }
- }
- *outSizeProcessed = outStreamSpec->Pos;
- if (bestIsFiltered)
- outBuffer[0] = 1;
- if (useFilter)
- MyFree(filteredStream);
- return mainResult;
-
- #ifndef _NO_EXCEPTIONS
- } catch(...) { return SZ_RAM_E_OUTOFMEMORY; }
- #endif
-}
diff --git a/CPP/7zip/Compress/LZMA_Alone/LzmaRam.h b/CPP/7zip/Compress/LZMA_Alone/LzmaRam.h
deleted file mode 100755
index 1244dc86..00000000
--- a/CPP/7zip/Compress/LZMA_Alone/LzmaRam.h
+++ /dev/null
@@ -1,46 +0,0 @@
-// LzmaRam.h
-
-#ifndef __LzmaRam_h
-#define __LzmaRam_h
-
-#include <stdlib.h>
-#include "../../../Common/Types.h"
-
-/*
-LzmaRamEncode: BCJ + LZMA RAM->RAM compressing.
-It uses .lzma format, but it writes one additional byte to .lzma file:
- 0: - no filter
- 1: - x86(BCJ) filter.
-
-To provide best compression ratio dictionarySize mustbe >= inSize
-
-LzmaRamEncode allocates Data with MyAlloc/BigAlloc functions.
-RAM Requirements:
- RamSize = dictionarySize * 9.5 + 6MB + FilterBlockSize
- FilterBlockSize = 0, if useFilter == false
- FilterBlockSize = inSize, if useFilter == true
-
- Return code:
- 0 - OK
- 1 - Unspecified Error
- 2 - Memory allocating error
- 3 - Output buffer OVERFLOW
-
-If you use SZ_FILTER_AUTO mode, then encoder will use 2 or 3 passes:
- 2 passes when FILTER_NO provides better compression.
- 3 passes when FILTER_YES provides better compression.
-*/
-
-enum ESzFilterMode
-{
- SZ_FILTER_NO,
- SZ_FILTER_YES,
- SZ_FILTER_AUTO
-};
-
-int LzmaRamEncode(
- const Byte *inBuffer, size_t inSize,
- Byte *outBuffer, size_t outSize, size_t *outSizeProcessed,
- UInt32 dictionarySize, ESzFilterMode filterMode);
-
-#endif
diff --git a/CPP/7zip/Compress/LZMA_Alone/LzmaRamDecode.c b/CPP/7zip/Compress/LZMA_Alone/LzmaRamDecode.c
deleted file mode 100755
index 29f798be..00000000
--- a/CPP/7zip/Compress/LZMA_Alone/LzmaRamDecode.c
+++ /dev/null
@@ -1,78 +0,0 @@
-/* LzmaRamDecode.c */
-
-#include "LzmaRamDecode.h"
-#ifdef _SZ_ONE_DIRECTORY
-#include "LzmaDecode.h"
-#include "BranchX86.h"
-#else
-#include "../../../../C/Compress/Lzma/LzmaDecode.h"
-#include "../../../../C/Compress/Branch/BranchX86.h"
-#endif
-
-#define LZMA_PROPS_SIZE 14
-#define LZMA_SIZE_OFFSET 6
-
-int LzmaRamGetUncompressedSize(
- const unsigned char *inBuffer,
- size_t inSize,
- size_t *outSize)
-{
- unsigned int i;
- if (inSize < LZMA_PROPS_SIZE)
- return 1;
- *outSize = 0;
- for(i = 0; i < sizeof(size_t); i++)
- *outSize += ((size_t)inBuffer[LZMA_SIZE_OFFSET + i]) << (8 * i);
- for(; i < 8; i++)
- if (inBuffer[LZMA_SIZE_OFFSET + i] != 0)
- return 1;
- return 0;
-}
-
-#define SZE_DATA_ERROR (1)
-#define SZE_OUTOFMEMORY (2)
-
-int LzmaRamDecompress(
- const unsigned char *inBuffer,
- size_t inSize,
- unsigned char *outBuffer,
- size_t outSize,
- size_t *outSizeProcessed,
- void * (*allocFunc)(size_t size),
- void (*freeFunc)(void *))
-{
- CLzmaDecoderState state; /* it's about 24 bytes structure, if int is 32-bit */
- int result;
- SizeT outSizeProcessedLoc;
- SizeT inProcessed;
- int useFilter;
-
- if (inSize < LZMA_PROPS_SIZE)
- return 1;
- useFilter = inBuffer[0];
-
- *outSizeProcessed = 0;
- if (useFilter > 1)
- return 1;
-
- if (LzmaDecodeProperties(&state.Properties, inBuffer + 1, LZMA_PROPERTIES_SIZE) != LZMA_RESULT_OK)
- return 1;
- state.Probs = (CProb *)allocFunc(LzmaGetNumProbs(&state.Properties) * sizeof(CProb));
- if (state.Probs == 0)
- return SZE_OUTOFMEMORY;
-
- result = LzmaDecode(&state,
- inBuffer + LZMA_PROPS_SIZE, (SizeT)inSize - LZMA_PROPS_SIZE, &inProcessed,
- outBuffer, (SizeT)outSize, &outSizeProcessedLoc);
- freeFunc(state.Probs);
- if (result != LZMA_RESULT_OK)
- return 1;
- *outSizeProcessed = (size_t)outSizeProcessedLoc;
- if (useFilter == 1)
- {
- UInt32 x86State;
- x86_Convert_Init(x86State);
- x86_Convert(outBuffer, (SizeT)outSizeProcessedLoc, 0, &x86State, 0);
- }
- return 0;
-}
diff --git a/CPP/7zip/Compress/LZMA_Alone/LzmaRamDecode.h b/CPP/7zip/Compress/LZMA_Alone/LzmaRamDecode.h
deleted file mode 100755
index 7e641c55..00000000
--- a/CPP/7zip/Compress/LZMA_Alone/LzmaRamDecode.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/* LzmaRamDecode.h */
-
-#ifndef __LzmaRamDecode_h
-#define __LzmaRamDecode_h
-
-#include <stdlib.h>
-
-/*
-LzmaRamGetUncompressedSize:
- In:
- inBuffer - input data
- inSize - input data size
- Out:
- outSize - uncompressed size
- Return code:
- 0 - OK
- 1 - Error in headers
-*/
-
-int LzmaRamGetUncompressedSize(
- const unsigned char *inBuffer,
- size_t inSize,
- size_t *outSize);
-
-
-/*
-LzmaRamDecompress:
- In:
- inBuffer - input data
- inSize - input data size
- outBuffer - output data
- outSize - output size
- allocFunc - alloc function (can be malloc)
- freeFunc - free function (can be free)
- Out:
- outSizeProcessed - processed size
- Return code:
- 0 - OK
- 1 - Error in headers / data stream
- 2 - Memory allocating error
-
-Memory requirements depend from properties of LZMA stream.
-With default lzma settings it's about 16 KB.
-*/
-
-int LzmaRamDecompress(
- const unsigned char *inBuffer,
- size_t inSize,
- unsigned char *outBuffer,
- size_t outSize,
- size_t *outSizeProcessed,
- void * (*allocFunc)(size_t size),
- void (*freeFunc)(void *));
-
-#endif
diff --git a/CPP/7zip/Compress/LZMA_Alone/makefile b/CPP/7zip/Compress/LZMA_Alone/makefile
index 16e76376..69196871 100755
--- a/CPP/7zip/Compress/LZMA_Alone/makefile
+++ b/CPP/7zip/Compress/LZMA_Alone/makefile
@@ -1,49 +1,13 @@
PROG = lzma.exe
+LIBS = $(LIBS) user32.lib
CFLAGS = $(CFLAGS) \
-DCOMPRESS_MF_MT \
-DBENCH_MT \
-LIBS = $(LIBS) oleaut32.lib user32.lib
-
-!IFDEF CPU
-LIBS = $(LIBS) bufferoverflowU.lib
-CFLAGS = $(CFLAGS) -GS- -Zc:forScope -W4 -Wp64 -DUNICODE -D_UNICODE
-!ENDIF
-
-!IFNDEF O
-!IFDEF CPU
-O=$(CPU)
-!ELSE
-O=O
-!ENDIF
-!ENDIF
-
-!IFDEF MY_STATIC_LINK
-!IFNDEF MY_SINGLE_THREAD
-CFLAGS = $(CFLAGS) -MT
-!ENDIF
-!ELSE
-CFLAGS = $(CFLAGS) -MD
-!ENDIF
-
-CFLAGS = $(CFLAGS) -nologo -EHsc -c -Fo$O/
-CFLAGS_O1 = $(CFLAGS) -O1
-CFLAGS_O2 = $(CFLAGS) -O2
-
-LFLAGS = $(LFLAGS) -nologo -OPT:NOWIN98
-
-PROGPATH = $O\$(PROG)
-
-COMPL_O1 = $(CPP) $(CFLAGS_O1) $**
-COMPL_O2 = $(CPP) $(CFLAGS_O2) $**
-COMPL = $(CPP) $(CFLAGS_O1) $**
-
-
LZMA_OBJS = \
$O\LzmaAlone.obj \
$O\LzmaBench.obj \
$O\LzmaBenchCon.obj \
- $O\LzmaRam.obj \
LZMA_OPT_OBJS = \
$O\LZMADecoder.obj \
@@ -66,44 +30,33 @@ WIN_OBJS = \
$O\OutBuffer.obj \
$O\StreamUtils.obj \
-LZ_OBJS = \
- $O\LZOutWindow.obj \
-
C_OBJS = \
- $O\Alloc.obj \
$O\7zCrc.obj \
+ $O\Alloc.obj \
+ $O\Bra86.obj \
+ $O\LzFind.obj \
+ $O\LzFindMt.obj \
+ $O\LzmaDec.obj \
+ $O\LzmaEnc.obj \
$O\Threads.obj \
-C_LZ_OBJS = \
- $O\MatchFinder.obj \
- $O\MatchFinderMt.obj \
+C_LZMAUTIL_OBJS = \
+ $O\Lzma86Dec.obj \
+ $O\Lzma86Enc.obj \
OBJS = \
+ $O\StdAfx.obj \
$(LZMA_OBJS) \
$(LZMA_OPT_OBJS) \
$(COMMON_OBJS) \
$(WIN_OBJS) \
$(7ZIP_COMMON_OBJS) \
- $(LZ_OBJS) \
$(C_OBJS) \
- $(C_LZ_OBJS) \
- $O\LzmaRamDecode.obj \
- $O\LzmaDecode.obj \
+ $(C_LZMAUTIL_OBJS) \
$O\FileStreams.obj \
$O\FileIO.obj \
- $O\RangeCoderBit.obj \
- $O\BranchX86.obj \
-
-all: $(PROGPATH)
-
-clean:
- -del /Q $(PROGPATH) $O\*.exe $O\*.dll $O\*.obj $O\*.lib $O\*.exp $O\*.res $O\*.pch
-
-$O:
- if not exist "$O" mkdir "$O"
-$(PROGPATH): $O $(OBJS)
- link $(LFLAGS) -out:$(PROGPATH) $(OBJS) $(LIBS)
+!include "../../../Build.mak"
$(LZMA_OBJS): $(*B).cpp
@@ -116,21 +69,11 @@ $(WIN_OBJS): ../../../Windows/$(*B).cpp
$(COMPL)
$(7ZIP_COMMON_OBJS): ../../Common/$(*B).cpp
$(COMPL)
-$(LZ_OBJS): ../LZ/$(*B).cpp
- $(COMPL)
-$O\RangeCoderBit.obj: ../RangeCoder/$(*B).cpp
- $(COMPL)
-$O\LzmaRamDecode.obj: LzmaRamDecode.c
- $(COMPL_O1)
-$O\LzmaDecode.obj: ../../../../C/Compress/Lzma/LzmaDecode.c
- $(COMPL_O2)
-$O\BranchX86.obj: ../../../../C/Compress/Branch/BranchX86.c
- $(COMPL_O2)
$O\FileStreams.obj: ../../Common/FileStreams.cpp
$(COMPL)
$O\FileIO.obj: ../../../Windows/FileIO.cpp
$(COMPL)
$(C_OBJS): ../../../../C/$(*B).c
$(COMPL_O2)
-$(C_LZ_OBJS): ../../../../C/Compress/Lz/$(*B).c
+$(C_LZMAUTIL_OBJS): ../../../../C/LzmaUtil/$(*B).c
$(COMPL_O2)
diff --git a/CPP/7zip/Compress/LZMA_Alone/makefile.gcc b/CPP/7zip/Compress/LZMA_Alone/makefile.gcc
index 4fed05e6..b5a5f1d1 100755
--- a/CPP/7zip/Compress/LZMA_Alone/makefile.gcc
+++ b/CPP/7zip/Compress/LZMA_Alone/makefile.gcc
@@ -22,11 +22,8 @@ OBJS = \
LzmaAlone.o \
LzmaBench.o \
LzmaBenchCon.o \
- LzmaRam.o \
LZMADecoder.o \
LZMAEncoder.o \
- LZOutWindow.o \
- RangeCoderBit.o \
InBuffer.o \
OutBuffer.o \
FileStreams.o \
@@ -41,10 +38,12 @@ OBJS = \
MyVector.o \
7zCrc.o \
Alloc.o \
- BranchX86.o \
- MatchFinder.o \
- LzmaDecode.o \
- LzmaRamDecode.o \
+ Bra86.o \
+ LzFind.o \
+ LzmaDec.o \
+ LzmaEnc.o \
+ Lzma86Dec.o \
+ Lzma86Enc.o \
all: $(PROG)
@@ -61,21 +60,12 @@ LzmaBench.o: LzmaBench.cpp
LzmaBenchCon.o: LzmaBenchCon.cpp
$(CXX) $(CFLAGS) LzmaBenchCon.cpp
-LzmaRam.o: LzmaRam.cpp
- $(CXX) $(CFLAGS) LzmaRam.cpp
-
LZMADecoder.o: ../LZMA/LZMADecoder.cpp
$(CXX) $(CFLAGS) ../LZMA/LZMADecoder.cpp
LZMAEncoder.o: ../LZMA/LZMAEncoder.cpp
$(CXX) $(CFLAGS) ../LZMA/LZMAEncoder.cpp
-LZOutWindow.o: ../LZ/LZOutWindow.cpp
- $(CXX) $(CFLAGS) ../LZ/LZOutWindow.cpp
-
-RangeCoderBit.o: ../RangeCoder/RangeCoderBit.cpp
- $(CXX) $(CFLAGS) ../RangeCoder/RangeCoderBit.cpp
-
InBuffer.o: ../../Common/InBuffer.cpp
$(CXX) $(CFLAGS) ../../Common/InBuffer.cpp
@@ -122,17 +112,23 @@ MyVector.o: ../../../Common/MyVector.cpp
Alloc.o: ../../../../C/Alloc.c
$(CXX_C) $(CFLAGS) ../../../../C/Alloc.c
-BranchX86.o: ../../../../C/Compress/Branch/BranchX86.c
- $(CXX_C) $(CFLAGS) ../../../../C/Compress/Branch/BranchX86.c
+Bra86.o: ../../../../C/Bra86.c
+ $(CXX_C) $(CFLAGS) ../../../../C/Bra86.c
+
+LzFind.o: ../../../../C/LzFind.c
+ $(CXX_C) $(CFLAGS) ../../../../C/LzFind.c
+
+LzmaDec.o: ../../../../C/LzmaDec.c
+ $(CXX_C) $(CFLAGS) ../../../../C/LzmaDec.c
-MatchFinder.o: ../../../../C/Compress/Lz/MatchFinder.c
- $(CXX_C) $(CFLAGS) ../../../../C/Compress/Lz/MatchFinder.c
+LzmaEnc.o: ../../../../C/LzmaEnc.c
+ $(CXX_C) $(CFLAGS) ../../../../C/LzmaEnc.c
-LzmaDecode.o: ../../../../C/Compress/Lzma/LzmaDecode.c
- $(CXX_C) $(CFLAGS) ../../../../C/Compress/Lzma/LzmaDecode.c
+Lzma86Dec.o: ../../../../C/LzmaUtil/Lzma86Dec.c
+ $(CXX_C) $(CFLAGS) ../../../../C/LzmaUtil/Lzma86Dec.c
-LzmaRamDecode.o: LzmaRamDecode.c
- $(CXX_C) $(CFLAGS) LzmaRamDecode.c
+Lzma86Enc.o: ../../../../C/LzmaUtil/Lzma86Enc.c
+ $(CXX_C) $(CFLAGS) ../../../../C/LzmaUtil/Lzma86Enc.c
clean:
-$(RM) $(PROG) $(OBJS)