diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/storage/file/PackIndexWriterV2.java b/org.eclipse.jgit/src/org/eclipse/jgit/storage/file/PackIndexWriterV2.java index 21ebd1ca9..7671cd6f1 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/storage/file/PackIndexWriterV2.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/storage/file/PackIndexWriterV2.java @@ -56,6 +56,9 @@ * @see PackIndexV2 */ class PackIndexWriterV2 extends PackIndexWriter { + private static final int MAX_OFFSET_32 = 0x7fffffff; + private static final int IS_OFFSET_64 = 0x80000000; + PackIndexWriterV2(final OutputStream dst) { super(dst); } @@ -87,10 +90,10 @@ private void writeOffset32() throws IOException { int o64 = 0; for (final PackedObjectInfo oe : entries) { final long o = oe.getOffset(); - if (o < Integer.MAX_VALUE) + if (o <= MAX_OFFSET_32) NB.encodeInt32(tmp, 0, (int) o); else - NB.encodeInt32(tmp, 0, (1 << 31) | o64++); + NB.encodeInt32(tmp, 0, IS_OFFSET_64 | o64++); out.write(tmp, 0, 4); } } @@ -98,7 +101,7 @@ private void writeOffset32() throws IOException { private void writeOffset64() throws IOException { for (final PackedObjectInfo oe : entries) { final long o = oe.getOffset(); - if (o > Integer.MAX_VALUE) { + if (MAX_OFFSET_32 < o) { NB.encodeInt64(tmp, 0, o); out.write(tmp, 0, 8); }