Browse Source

Factor out duplicate Inflater setup in WindowCursor

Since we use this code twice, pull it into a private method.  Let
the compiler/JIT worry about whether or not this logic should be
inlined into the call sites.

Change-Id: Ia44fb01e0328485bcdfd7af96835d62b227a0fb1
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
stable-0.8
Shawn O. Pearce 15 years ago
parent
commit
9c4d42e94d
  1. 17
      org.eclipse.jgit/src/org/eclipse/jgit/lib/WindowCursor.java

17
org.eclipse.jgit/src/org/eclipse/jgit/lib/WindowCursor.java

@ -116,10 +116,7 @@ public final class WindowCursor {
*/ */
int inflate(final PackFile pack, long position, final byte[] dstbuf, int inflate(final PackFile pack, long position, final byte[] dstbuf,
int dstoff) throws IOException, DataFormatException { int dstoff) throws IOException, DataFormatException {
if (inf == null) prepareInflater();
inf = InflaterCache.get();
else
inf.reset();
for (;;) { for (;;) {
pin(pack, position); pin(pack, position);
dstoff = window.inflate(position, dstbuf, dstoff, inf); dstoff = window.inflate(position, dstbuf, dstoff, inf);
@ -131,10 +128,7 @@ public final class WindowCursor {
void inflateVerify(final PackFile pack, long position) void inflateVerify(final PackFile pack, long position)
throws IOException, DataFormatException { throws IOException, DataFormatException {
if (inf == null) prepareInflater();
inf = InflaterCache.get();
else
inf.reset();
for (;;) { for (;;) {
pin(pack, position); pin(pack, position);
window.inflateVerify(position, inf); window.inflateVerify(position, inf);
@ -144,6 +138,13 @@ public final class WindowCursor {
} }
} }
private void prepareInflater() {
if (inf == null)
inf = InflaterCache.get();
else
inf.reset();
}
private void pin(final PackFile pack, final long position) private void pin(final PackFile pack, final long position)
throws IOException { throws IOException {
final ByteWindow w = window; final ByteWindow w = window;

Loading…
Cancel
Save