Browse Source

Fallback to 1.2. Come back later for this one.

git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@270634 13f79535-47bb-0310-9956-ffa450edef68
master
Stephane Bailliez 23 years ago
parent
commit
f7940f8b48
1 changed files with 38 additions and 71 deletions
  1. +38
    -71
      src/main/org/apache/tools/bzip2/CBZip2InputStream.java

+ 38
- 71
src/main/org/apache/tools/bzip2/CBZip2InputStream.java View File

@@ -89,13 +89,12 @@ public class CBZip2InputStream extends InputStream implements BZip2Constants {
private void makeMaps() { private void makeMaps() {
int i; int i;
nInUse = 0; nInUse = 0;
for (i = 0; i < 256; i++) {
for (i = 0; i < 256; i++)
if (inUse[i]) { if (inUse[i]) {
seqToUnseq[nInUse] = (char)i; seqToUnseq[nInUse] = (char)i;
unseqToSeq[i] = (char)nInUse; unseqToSeq[i] = (char)nInUse;
nInUse++; nInUse++;
} }
}
} }


/* /*
@@ -250,11 +249,10 @@ public class CBZip2InputStream extends InputStream implements BZip2Constants {


storedBlockCRC = bsGetInt32(); storedBlockCRC = bsGetInt32();


if (bsR(1) == 1) {
if (bsR(1) == 1)
blockRandomised = true; blockRandomised = true;
} else {
else
blockRandomised = false; blockRandomised = false;
}


// currBlockNo++; // currBlockNo++;
getAndMoveToFrontDecode(); getAndMoveToFrontDecode();
@@ -266,9 +264,8 @@ public class CBZip2InputStream extends InputStream implements BZip2Constants {
private void endBlock() { private void endBlock() {
computedBlockCRC = mCrc.getFinalCRC(); computedBlockCRC = mCrc.getFinalCRC();
/* A bad CRC is considered a fatal error. */ /* A bad CRC is considered a fatal error. */
if (storedBlockCRC != computedBlockCRC) {
if (storedBlockCRC != computedBlockCRC)
crcError(); crcError();
}


computedCombinedCRC = (computedCombinedCRC << 1) computedCombinedCRC = (computedCombinedCRC << 1)
| (computedCombinedCRC >>> 31); | (computedCombinedCRC >>> 31);
@@ -277,9 +274,8 @@ public class CBZip2InputStream extends InputStream implements BZip2Constants {


private void complete() { private void complete() {
storedCombinedCRC = bsGetInt32(); storedCombinedCRC = bsGetInt32();
if (storedCombinedCRC != computedCombinedCRC) {
if (storedCombinedCRC != computedCombinedCRC)
crcError(); crcError();
}


bsFinishedWithStream(); bsFinishedWithStream();
streamEnd = true; streamEnd = true;
@@ -361,28 +357,23 @@ public class CBZip2InputStream extends InputStream implements BZip2Constants {
int pp, i, j, vec; int pp, i, j, vec;


pp = 0; pp = 0;
for(i = minLen; i <= maxLen; i++) {
for(j = 0; j < alphaSize; j++) {
for(i = minLen; i <= maxLen; i++)
for(j = 0; j < alphaSize; j++)
if (length[j] == i) { if (length[j] == i) {
perm[pp] = j; perm[pp] = j;
pp++; pp++;
}
}
};
};


for(i = 0; i < MAX_CODE_LEN; i++) {
for(i = 0; i < MAX_CODE_LEN; i++)
base[i] = 0; base[i] = 0;
}
for(i = 0; i < alphaSize; i++) {
for(i = 0; i < alphaSize; i++)
base[length[i]+1]++; base[length[i]+1]++;
}


for(i = 1; i < MAX_CODE_LEN; i++) for(i = 1; i < MAX_CODE_LEN; i++)
base[i] += base[i-1]; base[i] += base[i-1];


for (i = 0; i < MAX_CODE_LEN; i++) {
for (i = 0; i < MAX_CODE_LEN; i++)
limit[i] = 0; limit[i] = 0;
}
vec = 0; vec = 0;


for (i = minLen; i <= maxLen; i++) { for (i = minLen; i <= maxLen; i++) {
@@ -390,9 +381,8 @@ public class CBZip2InputStream extends InputStream implements BZip2Constants {
limit[i] = vec-1; limit[i] = vec-1;
vec <<= 1; vec <<= 1;
} }
for (i = minLen + 1; i <= maxLen; i++) {
for (i = minLen + 1; i <= maxLen; i++)
base[i] = ((limit[i-1] + 1) << 1) - base[i]; base[i] = ((limit[i-1] + 1) << 1) - base[i];
}
} }


private void recvDecodingTables() { private void recvDecodingTables() {
@@ -402,27 +392,20 @@ public class CBZip2InputStream extends InputStream implements BZip2Constants {
boolean inUse16[] = new boolean[16]; boolean inUse16[] = new boolean[16];


/* Receive the mapping table */ /* Receive the mapping table */
for (i = 0; i < 16; i++) {
if (bsR(1) == 1) {
for (i = 0; i < 16; i++)
if (bsR(1) == 1)
inUse16[i] = true; inUse16[i] = true;
} else {
else
inUse16[i] = false; inUse16[i] = false;
}
}


for (i = 0; i < 256; i++) {
for (i = 0; i < 256; i++)
inUse[i] = false; inUse[i] = false;
}


for (i = 0; i < 16; i++) {
if (inUse16[i]) {
for (j = 0; j < 16; j++) {
if (bsR(1) == 1) {
for (i = 0; i < 16; i++)
if (inUse16[i])
for (j = 0; j < 16; j++)
if (bsR(1) == 1)
inUse[i * 16 + j] = true; inUse[i * 16 + j] = true;
}
}
}
}


makeMaps(); makeMaps();
alphaSize = nInUse+2; alphaSize = nInUse+2;
@@ -432,9 +415,8 @@ public class CBZip2InputStream extends InputStream implements BZip2Constants {
nSelectors = bsR(15); nSelectors = bsR(15);
for (i = 0; i < nSelectors; i++) { for (i = 0; i < nSelectors; i++) {
j = 0; j = 0;
while (bsR(1) == 1) {
while (bsR(1) == 1)
j++; j++;
}
selectorMtf[i] = (char)j; selectorMtf[i] = (char)j;
} }


@@ -442,9 +424,8 @@ public class CBZip2InputStream extends InputStream implements BZip2Constants {
{ {
char pos[] = new char[N_GROUPS]; char pos[] = new char[N_GROUPS];
char tmp, v; char tmp, v;
for (v = 0; v < nGroups; v++) {
for (v = 0; v < nGroups; v++)
pos[v] = v; pos[v] = v;
}


for (i = 0; i < nSelectors; i++) { for (i = 0; i < nSelectors; i++) {
v = selectorMtf[i]; v = selectorMtf[i];
@@ -463,11 +444,10 @@ public class CBZip2InputStream extends InputStream implements BZip2Constants {
int curr = bsR ( 5 ); int curr = bsR ( 5 );
for (i = 0; i < alphaSize; i++) { for (i = 0; i < alphaSize; i++) {
while (bsR(1) == 1) { while (bsR(1) == 1) {
if (bsR(1) == 0) {
if (bsR(1) == 0)
curr++; curr++;
} else {
else
curr--; curr--;
}
} }
len[t][i] = (char)curr; len[t][i] = (char)curr;
} }
@@ -478,12 +458,10 @@ public class CBZip2InputStream extends InputStream implements BZip2Constants {
minLen = 32; minLen = 32;
maxLen = 0; maxLen = 0;
for (i = 0; i < alphaSize; i++) { for (i = 0; i < alphaSize; i++) {
if (len[t][i] > maxLen) {
if (len[t][i] > maxLen)
maxLen = len[t][i]; maxLen = len[t][i];
}
if (len[t][i] < minLen) {
if (len[t][i] < minLen)
minLen = len[t][i]; minLen = len[t][i];
}
} }
hbCreateDecodeTables(limit[t], base[t], perm[t], len[t], minLen, hbCreateDecodeTables(limit[t], base[t], perm[t], len[t], minLen,
maxLen, alphaSize); maxLen, alphaSize);
@@ -510,13 +488,11 @@ public class CBZip2InputStream extends InputStream implements BZip2Constants {
in a separate pass, and so saves a block's worth of in a separate pass, and so saves a block's worth of
cache misses. cache misses.
*/ */
for (i = 0; i <= 255; i++) {
for (i = 0; i <= 255; i++)
unzftab[i] = 0; unzftab[i] = 0;
}


for (i = 0; i <= 255; i++) {
for (i = 0; i <= 255; i++)
yy[i] = (char) i; yy[i] = (char) i;
}


last = -1; last = -1;


@@ -560,20 +536,18 @@ public class CBZip2InputStream extends InputStream implements BZip2Constants {


while(true) { while(true) {


if (nextSym == EOB) {
if (nextSym == EOB)
break; break;
}


if (nextSym == RUNA || nextSym == RUNB) { if (nextSym == RUNA || nextSym == RUNB) {
char ch; char ch;
int s = -1; int s = -1;
int N = 1; int N = 1;
do { do {
if (nextSym == RUNA) {
if (nextSym == RUNA)
s = s + (0+1) * N; s = s + (0+1) * N;
} else if (nextSym == RUNB) {
else if (nextSym == RUNB)
s = s + (1+1) * N; s = s + (1+1) * N;
}
N = N * 2; N = N * 2;
{ {
int zt, zn, zvec, zj; int zt, zn, zvec, zj;
@@ -624,16 +598,14 @@ public class CBZip2InputStream extends InputStream implements BZip2Constants {
s--; s--;
}; };


if (last >= limitLast) {
if (last >= limitLast)
blockOverrun(); blockOverrun();
}
continue; continue;
} else { } else {
char tmp; char tmp;
last++; last++;
if (last >= limitLast) {
if (last >= limitLast)
blockOverrun(); blockOverrun();
}


tmp = yy[nextSym-1]; tmp = yy[nextSym-1];
unzftab[seqToUnseq[tmp]]++; unzftab[seqToUnseq[tmp]]++;
@@ -653,9 +625,8 @@ public class CBZip2InputStream extends InputStream implements BZip2Constants {
yy[j-2] = yy[j-3]; yy[j-2] = yy[j-3];
yy[j-3] = yy[j-4]; yy[j-3] = yy[j-4];
} }
for (; j > 0; j--) {
for (; j > 0; j--)
yy[j] = yy[j-1]; yy[j] = yy[j-1];
}


yy[0] = tmp; yy[0] = tmp;
{ {
@@ -702,12 +673,10 @@ public class CBZip2InputStream extends InputStream implements BZip2Constants {
char ch; char ch;


cftab[0] = 0; cftab[0] = 0;
for (i = 1; i <= 256; i++) {
for (i = 1; i <= 256; i++)
cftab[i] = unzftab[i-1]; cftab[i] = unzftab[i-1];
}
for (i = 1; i <= 256; i++) {
for (i = 1; i <= 256; i++)
cftab[i] += cftab[i-1]; cftab[i] += cftab[i-1];
}


for (i = 0; i <= last; i++) { for (i = 0; i <= last; i++) {
ch = (char)ll8[i]; ch = (char)ll8[i];
@@ -786,9 +755,8 @@ public class CBZip2InputStream extends InputStream implements BZip2Constants {
if (rNToGo == 0) { if (rNToGo == 0) {
rNToGo = rNums[rTPos]; rNToGo = rNums[rTPos];
rTPos++; rTPos++;
if(rTPos == 512) {
if(rTPos == 512)
rTPos = 0; rTPos = 0;
}
} }
rNToGo--; rNToGo--;
z ^= ((rNToGo == 1) ? 1 : 0); z ^= ((rNToGo == 1) ? 1 : 0);
@@ -856,9 +824,8 @@ public class CBZip2InputStream extends InputStream implements BZip2Constants {


blockSize100k = newSize100k; blockSize100k = newSize100k;


if(newSize100k == 0) {
if(newSize100k == 0)
return; return;
}


int n = baseBlockSize * newSize100k; int n = baseBlockSize * newSize100k;
ll8 = new char[n]; ll8 = new char[n];


Loading…
Cancel
Save