TemporaryBuffer: Clear block pointer list instead of reallocating

The block pointer list may have been relatively large, so no need to
make more garbage. Instead, just clear the list and null out all the
elements.

Another possible motivation: a caller may have provided an inaccurate
estimated size, so the list might have been resized several times. If
the list is reused later for a similarly underestimated workload, this
fix will prevent additional resizing on subsequent usages.

Change-Id: I511675035dcff1117381a46c294cc11aded10893
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/util/TemporaryBuffer.java b/org.eclipse.jgit/src/org/eclipse/jgit/util/TemporaryBuffer.java
index 0a8c594..006c3c0 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/util/TemporaryBuffer.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/util/TemporaryBuffer.java
@@ -291,13 +291,11 @@ public void reset() {
 		if (overflow != null) {
 			destroy();
 		}
-		if (inCoreLimit < Block.SZ) {
-			blocks = new ArrayList<Block>(1);
-			blocks.add(new Block(inCoreLimit));
-		} else {
+		if (blocks != null)
+			blocks.clear();
+		else
 			blocks = new ArrayList<Block>(initialBlocks);
-			blocks.add(new Block());
-		}
+		blocks.add(new Block(Math.min(inCoreLimit, Block.SZ)));
 	}
 
 	/**