Mercurial > jhg
diff src/org/tmatesoft/hg/internal/InflaterDataAccess.java @ 655:bcbcc318f250
Performance: reuse unzip output buffer
author | Artem Tikhomirov <tikhomirov.artem@gmail.com> |
---|---|
date | Thu, 04 Jul 2013 18:36:38 +0200 |
parents | ed243b668502 |
children |
line wrap: on
line diff
--- a/src/org/tmatesoft/hg/internal/InflaterDataAccess.java Wed Jul 03 15:11:40 2013 +0200 +++ b/src/org/tmatesoft/hg/internal/InflaterDataAccess.java Thu Jul 04 18:36:38 2013 +0200 @@ -39,22 +39,22 @@ private int decompressedLength; public InflaterDataAccess(DataAccess dataAccess, long offset, int compressedLength) { - this(dataAccess, offset, compressedLength, -1, new Inflater(), new byte[512]); + this(dataAccess, offset, compressedLength, -1, new Inflater(), new byte[512], null); } public InflaterDataAccess(DataAccess dataAccess, long offset, int compressedLength, int actualLength) { - this(dataAccess, offset, compressedLength, actualLength, new Inflater(), new byte[512]); + this(dataAccess, offset, compressedLength, actualLength, new Inflater(), new byte[512], null); } - public InflaterDataAccess(DataAccess dataAccess, long offset, int compressedLength, int actualLength, Inflater inflater, byte[] buf) { + public InflaterDataAccess(DataAccess dataAccess, long offset, int compressedLength, int actualLength, Inflater inflater, byte[] inBuf, ByteBuffer outBuf) { super(dataAccess, offset, compressedLength); - if (inflater == null || buf == null) { + if (inflater == null || inBuf == null) { throw new IllegalArgumentException(); } this.inflater = inflater; this.decompressedLength = actualLength; - inBuffer = buf; - outBuffer = ByteBuffer.allocate(inBuffer.length * 2); + inBuffer = inBuf; + outBuffer = outBuf == null ? ByteBuffer.allocate(inBuffer.length * 2) : outBuf; outBuffer.limit(0); // there's nothing to read in the buffer }