diff options
author | Peter Dettman <peter.dettman@bouncycastle.org> | 2022-06-07 12:31:51 +0700 |
---|---|---|
committer | Peter Dettman <peter.dettman@bouncycastle.org> | 2022-06-07 12:31:51 +0700 |
commit | 86c42dc16533f74e2f82fd5e800f3b9b56ab7c64 (patch) | |
tree | 6ba7d0a348c04599ee0ef98007993b2d8f2bddd8 /crypto/bzip2/src/CBZip2InputStream.cs | |
parent | Further bzip2 improvements (diff) | |
download | BouncyCastle.NET-ed25519-86c42dc16533f74e2f82fd5e800f3b9b56ab7c64.tar.xz |
bzip2 perf. opts.
Diffstat (limited to 'crypto/bzip2/src/CBZip2InputStream.cs')
-rw-r--r-- | crypto/bzip2/src/CBZip2InputStream.cs | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/crypto/bzip2/src/CBZip2InputStream.cs b/crypto/bzip2/src/CBZip2InputStream.cs index 111b1b530..c3125a4e7 100644 --- a/crypto/bzip2/src/CBZip2InputStream.cs +++ b/crypto/bzip2/src/CBZip2InputStream.cs @@ -465,7 +465,6 @@ namespace Org.BouncyCastle.Apache.Bzip2 private void GetAndMoveToFrontDecode() { - byte[] yy = new byte[256]; int i, j, nextSym; int limitLast = BZip2Constants.baseBlockSize * blockSize100k; @@ -487,9 +486,10 @@ namespace Org.BouncyCastle.Apache.Bzip2 */ Array.Clear(unzftab, 0, unzftab.Length); - for (i = 0; i <= 255; i++) + byte[] yy = new byte[nInUse]; + for (i = 0; i < nInUse; ++i) { - yy[i] = (byte)i; + yy[i] = seqToUnseq[i]; } last = -1; @@ -567,7 +567,7 @@ namespace Org.BouncyCastle.Apache.Bzip2 //while (nextSym == BZip2Constants.RUNA || nextSym == BZip2Constants.RUNB); while (nextSym <= BZip2Constants.RUNB); - byte ch = seqToUnseq[yy[0]]; + byte ch = yy[0]; unzftab[ch] += s; if (last >= limitLast - s) @@ -586,8 +586,8 @@ namespace Org.BouncyCastle.Apache.Bzip2 throw new InvalidOperationException("Block overrun"); byte tmp = yy[nextSym - 1]; - unzftab[seqToUnseq[tmp]]++; - ll8[last] = seqToUnseq[tmp]; + unzftab[tmp]++; + ll8[last] = tmp; /* * This loop is hammered during decompression, hence avoid |