4.54 beta

This commit is contained in:
Igor Pavlov
2007-09-04 00:00:00 +00:00
committed by Kornel Lesiński
parent 051769bbc5
commit b82f80647d
56 changed files with 558 additions and 202 deletions

View File

@@ -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;

View File

@@ -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)
{

View File

@@ -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);
}

View File

@@ -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)