Browse Source

Cleanup duplicated object reuse code in PackWriter

This reuse line was identical between the two branches related to
reusing a delta, or reusing a whole object.  Either way they reuse
the body of the object as-is.  So just make that a common function
after the header is written.

Change-Id: I0e6673b8e813c8c08c594ea2ba546fd366339d5d
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
stable-0.8
Shawn O. Pearce 15 years ago
parent
commit
eeed0abd16
  1. 12
      org.eclipse.jgit/src/org/eclipse/jgit/lib/PackWriter.java

12
org.eclipse.jgit/src/org/eclipse/jgit/lib/PackWriter.java

@ -718,12 +718,11 @@ public class PackWriter {
final PackedObjectLoader reuse = open(otp); final PackedObjectLoader reuse = open(otp);
if (reuse != null) { if (reuse != null) {
try { try {
if (otp.isDeltaRepresentation()) { if (otp.isDeltaRepresentation())
writeDeltaObjectReuse(otp, reuse); writeDeltaObjectHeader(otp, reuse);
} else { else
writeObjectHeader(otp.getType(), reuse.getSize()); writeObjectHeader(otp.getType(), reuse.getSize());
reuse.copyRawData(out, buf, windowCursor); reuse.copyRawData(out, buf, windowCursor);
}
} finally { } finally {
reuse.endCopyRawData(); reuse.endCopyRawData();
} }
@ -773,7 +772,7 @@ public class PackWriter {
} while (!deflater.finished()); } while (!deflater.finished());
} }
private void writeDeltaObjectReuse(final ObjectToPack otp, private void writeDeltaObjectHeader(final ObjectToPack otp,
final PackedObjectLoader reuse) throws IOException { final PackedObjectLoader reuse) throws IOException {
if (deltaBaseAsOffset && otp.getDeltaBase() != null) { if (deltaBaseAsOffset && otp.getDeltaBase() != null) {
writeObjectHeader(Constants.OBJ_OFS_DELTA, reuse.getRawSize()); writeObjectHeader(Constants.OBJ_OFS_DELTA, reuse.getRawSize());
@ -792,7 +791,6 @@ public class PackWriter {
otp.getDeltaBaseId().copyRawTo(buf, 0); otp.getDeltaBaseId().copyRawTo(buf, 0);
out.write(buf, 0, Constants.OBJECT_ID_LENGTH); out.write(buf, 0, Constants.OBJECT_ID_LENGTH);
} }
reuse.copyRawData(out, buf, windowCursor);
} }
private void writeObjectHeader(final int objectType, long dataLength) private void writeObjectHeader(final int objectType, long dataLength)

Loading…
Cancel
Save