From ae972e774e2eb8c72585ad3d4e02687a5c2df66f Mon Sep 17 00:00:00 2001 From: "Shawn O. Pearce" Date: Sat, 15 May 2010 19:10:47 -0700 Subject: [PATCH] Remove unnecessary truncation of in-pack size during copy The number of bytes to copy was truncated to an int, but the pack's copyToStream() method expected to be passed a long here. Pass through the long so we don't truncate a giant object. Change-Id: I0786ad60a3a33f84d8746efe51f68d64e127c332 Signed-off-by: Shawn O. Pearce --- org.eclipse.jgit/src/org/eclipse/jgit/lib/PackFile.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/lib/PackFile.java b/org.eclipse.jgit/src/org/eclipse/jgit/lib/PackFile.java index 28edf30cd..63f516263 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/lib/PackFile.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/lib/PackFile.java @@ -270,7 +270,7 @@ final void copyRawData(final PackedObjectLoader loader, throws IOException { final long objectOffset = loader.objectOffset; final long dataOffset = objectOffset + loader.headerSize; - final int cnt = (int) (findEndOffset(objectOffset) - dataOffset); + final long sz = findEndOffset(objectOffset) - dataOffset; final PackIndex idx = idx(); if (idx.hasCRC32Support()) { @@ -283,7 +283,7 @@ final void copyRawData(final PackedObjectLoader loader, headerCnt -= toRead; } final CheckedOutputStream crcOut = new CheckedOutputStream(out, crc); - copyToStream(dataOffset, buf, cnt, crcOut, curs); + copyToStream(dataOffset, buf, sz, crcOut, curs); final long computed = crc.getValue(); final ObjectId id = findObjectForOffset(objectOffset); @@ -301,7 +301,7 @@ final void copyRawData(final PackedObjectLoader loader, coe.initCause(dfe); throw coe; } - copyToStream(dataOffset, buf, cnt, out, curs); + copyToStream(dataOffset, buf, sz, out, curs); } }