This commit is contained in:
Denis Molony 2020-06-24 08:41:47 +10:00
parent 35c1cd48c7
commit e7445bd5f2
1 changed files with 21 additions and 28 deletions

View File

@ -264,10 +264,7 @@ public class ExoBuffer
// ---------------------------------------------------------------------------------//
{
int len;
int offset;
int i;
int val;
int src = 0;
int srcPtr = 0;
int literal;
int threshold = (flagsProto & PFLAG_4_OFFSET_TABLES) != 0 ? 4 : 3;
@ -275,7 +272,7 @@ public class ExoBuffer
{
len = 1;
literal = 1;
src = literal (len, literal, src);
srcPtr = copy (len, literal, srcPtr);
}
while (true)
@ -286,36 +283,32 @@ public class ExoBuffer
{
len = 1;
literal = 1;
src = literal (len, literal, src);
continue;
}
val = getGammaCode ();
if (val == 16)
break;
if (val == 17)
else
{
len = getBits (16);
literal = 1;
src = literal (len, literal, src);
continue;
int val = getGammaCode ();
if (val == 16)
break;
if (val == 17)
{
len = getBits (16);
literal = 1;
}
else
{
len = getCooked (val);
int i = (len > threshold ? threshold : len) - 1;
srcPtr = outPos - getCooked (tableOff[i] + getBits (tableBit[i]));
}
}
len = getCooked (val);
i = (len > threshold ? threshold : len) - 1;
val = tableOff[i] + getBits (tableBit[i]);
offset = getCooked (val);
src = outPos - offset;
src = literal (len, literal, src);
srcPtr = copy (len, literal, srcPtr);
}
}
// ---------------------------------------------------------------------------------//
private int literal (int len, int literal, int src)
private int copy (int len, int literal, int src)
// ---------------------------------------------------------------------------------//
{
assert len > 0;