Browse Source

Use the ObjectStream size during copyTo

If the stream is a delta decompression stream, getting the size
can be expensive.  Its cheaper to get it from the stream itself
rather than from the object loader.

Change-Id: Ia7f0af98681f6d56ea419a48c6fa8eea09274b28
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
stable-0.9
Shawn O. Pearce 14 years ago
parent
commit
b474de1da3
  1. 3
      org.eclipse.jgit/src/org/eclipse/jgit/lib/ObjectLoader.java

3
org.eclipse.jgit/src/org/eclipse/jgit/lib/ObjectLoader.java

@ -166,6 +166,7 @@ public abstract class ObjectLoader {
if (isLarge()) { if (isLarge()) {
ObjectStream in = openStream(); ObjectStream in = openStream();
try { try {
final long sz = in.getSize();
byte[] tmp = new byte[1024]; byte[] tmp = new byte[1024];
long copied = 0; long copied = 0;
for (;;) { for (;;) {
@ -175,7 +176,7 @@ public abstract class ObjectLoader {
out.write(tmp, 0, n); out.write(tmp, 0, n);
copied += n; copied += n;
} }
if (copied != getSize()) if (copied != sz)
throw new EOFException(); throw new EOFException();
} finally { } finally {
in.close(); in.close();

Loading…
Cancel
Save