Skip to content

Commit 5704fcb

Browse files
committed
fixed an issue with compression big files in stream and stream high mode
1 parent 711e052 commit 5704fcb

File tree

3 files changed

+7
-7
lines changed

3 files changed

+7
-7
lines changed

Blazer.Net/Algorithms/StreamEncoder.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,7 @@ public BufferInfo Encode(byte[] buffer, int offset, int length)
115115
if (_shiftValue >= 2 * SIZE_SHIFT)
116116
{
117117
ShiftHashtable();
118+
_shiftValue -= SIZE_SHIFT;
118119
}
119120

120121
return new BufferInfo(_bufferOut, _bufferOutIdx, cnt);
@@ -401,9 +402,8 @@ public static int CompressBlockExternal(byte[] bufferIn, int bufferInOffset, int
401402
/// <remarks>Use this method to periodically shift positions in array. It is required for streams longer than 2Gb</remarks>
402403
protected virtual void ShiftHashtable()
403404
{
404-
_shiftValue -= SIZE_SHIFT;
405-
for (var i = 0; i < HASH_TABLE_LEN; i++)
406-
_hashArr[i] = Math.Min(0, _hashArr[i] - SIZE_SHIFT);
405+
for (var i = 0; i < HASH_TABLE_LEN + 1; i++)
406+
_hashArr[i] = Math.Max(0, _hashArr[i] - SIZE_SHIFT);
407407
}
408408

409409
/// <summary>

Blazer.Net/Algorithms/StreamEncoderHigh.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -70,10 +70,10 @@ public override void Init(int maxInBlockSize)
7070
protected override void ShiftHashtable()
7171
{
7272
for (var i = 0; i < HASHARR_CNT; i++)
73-
for (var k = 0; k < HASH_TABLE_LEN; k++)
74-
_hashArr2[i][k] = Math.Min(0, _hashArr2[i][k] - SIZE_SHIFT);
73+
for (var k = 0; k < HASH_TABLE_LEN + 1; k++)
74+
_hashArr2[i][k] = Math.Max(0, _hashArr2[i][k] - SIZE_SHIFT);
7575

76-
for (var k = 0; k < HASH_TABLE_LEN; k++) _hashArrPos[k] = _hashArrPos[k] & 0xffff;
76+
for (var k = 0; k < HASH_TABLE_LEN + 1; k++) _hashArrPos[k] = _hashArrPos[k] & 0xffff;
7777
}
7878

7979
/// <summary>

Blazer.Net/Properties/AssemblyInfo.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,4 +32,4 @@
3232
// by using the '*' as shown below:
3333
// [assembly: AssemblyVersion("1.0.*")]
3434
[assembly: AssemblyVersion("0.9.2.0")]
35-
[assembly: AssemblyFileVersion("0.9.2.10")]
35+
[assembly: AssemblyFileVersion("0.9.3.11")]

0 commit comments

Comments
 (0)