mirror of
https://github.com/Xevion/easy7zip.git
synced 2025-12-07 07:14:56 -06:00
4.54 beta
This commit is contained in:
committed by
Kornel Lesiński
parent
051769bbc5
commit
b82f80647d
@@ -25,7 +25,16 @@ public:
|
||||
return false;
|
||||
pos += _bufferSize;
|
||||
}
|
||||
do
|
||||
if (_limitPos - _pos > len && _bufferSize - pos > len)
|
||||
{
|
||||
const Byte *src = _buffer + pos;
|
||||
Byte *dest = _buffer + _pos;
|
||||
_pos += len;
|
||||
do
|
||||
*dest++ = *src++;
|
||||
while(--len != 0);
|
||||
}
|
||||
else do
|
||||
{
|
||||
if (pos == _bufferSize)
|
||||
pos = 0;
|
||||
|
||||
@@ -159,7 +159,7 @@ int main2(int n, const char *args[])
|
||||
g_IsNT = IsItWindowsNT();
|
||||
#endif
|
||||
|
||||
fprintf(stderr, "\nLZMA 4.49 Copyright (c) 1999-2007 Igor Pavlov 2007-07-05\n");
|
||||
fprintf(stderr, "\nLZMA 4.54 Copyright (c) 1999-2007 Igor Pavlov 2007-09-04\n");
|
||||
|
||||
if (n == 1)
|
||||
{
|
||||
|
||||
@@ -448,7 +448,7 @@ UInt64 GetCompressRating(UInt32 dictionarySize, UInt64 elapsedTime, UInt64 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 * 14) * numIterations; // Intel Core2
|
||||
UInt64 numCommands = (inSize * 220 + outSize * 8) * numIterations; // Intel Core2
|
||||
return MyMultDiv64(numCommands, elapsedTime, freq);
|
||||
}
|
||||
|
||||
|
||||
@@ -266,13 +266,26 @@ public:
|
||||
{
|
||||
_lzSize += len;
|
||||
UInt32 pos = (_winPos - distance - 1) & kWindowMask;
|
||||
Byte *window = _window;
|
||||
UInt32 winPos = _winPos;
|
||||
if (kWindowSize - winPos > len && kWindowSize - pos > len)
|
||||
{
|
||||
const Byte *src = window + pos;
|
||||
Byte *dest = window + winPos;
|
||||
_winPos += len;
|
||||
do
|
||||
*dest++ = *src++;
|
||||
while(--len != 0);
|
||||
return;
|
||||
}
|
||||
do
|
||||
{
|
||||
_window[_winPos] = _window[pos];
|
||||
_winPos = (_winPos + 1) & kWindowMask;
|
||||
window[winPos] = window[pos];
|
||||
winPos = (winPos + 1) & kWindowMask;
|
||||
pos = (pos + 1) & kWindowMask;
|
||||
}
|
||||
while(--len != 0);
|
||||
_winPos = winPos;
|
||||
}
|
||||
|
||||
void PutByte(Byte b)
|
||||
|
||||
Reference in New Issue
Block a user