From 9c4d42e94dbf199a9cef46a4b9286552c8633f4f Mon Sep 17 00:00:00 2001
From: "Shawn O. Pearce" <spearce@spearce.org>
Date: Sat, 15 May 2010 16:18:44 -0700
Subject: [PATCH] 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>
---
 .../src/org/eclipse/jgit/lib/WindowCursor.java  | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/lib/WindowCursor.java b/org.eclipse.jgit/src/org/eclipse/jgit/lib/WindowCursor.java
index 93e2a0242..968c92e5c 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/lib/WindowCursor.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/lib/WindowCursor.java
@@ -116,10 +116,7 @@ int copy(final PackFile pack, long position, final byte[] dstbuf,
 	 */
 	int inflate(final PackFile pack, long position, final byte[] dstbuf,
 			int dstoff) throws IOException, DataFormatException {
-		if (inf == null)
-			inf = InflaterCache.get();
-		else
-			inf.reset();
+		prepareInflater();
 		for (;;) {
 			pin(pack, position);
 			dstoff = window.inflate(position, dstbuf, dstoff, inf);
@@ -131,10 +128,7 @@ int inflate(final PackFile pack, long position, final byte[] dstbuf,
 
 	void inflateVerify(final PackFile pack, long position)
 			throws IOException, DataFormatException {
-		if (inf == null)
-			inf = InflaterCache.get();
-		else
-			inf.reset();
+		prepareInflater();
 		for (;;) {
 			pin(pack, position);
 			window.inflateVerify(position, inf);
@@ -144,6 +138,13 @@ void inflateVerify(final PackFile pack, long position)
 		}
 	}
 
+	private void prepareInflater() {
+		if (inf == null)
+			inf = InflaterCache.get();
+		else
+			inf.reset();
+	}
+
 	private void pin(final PackFile pack, final long position)
 			throws IOException {
 		final ByteWindow w = window;
-- 
GitLab