[JGIT PATCH 06/12] Move PackFile.SIGNATURE to Constants.PACK_SIGNATURE

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Move to avoid redundancy in reading and writing packfiles in 3 places.
It seems to be a better place for format-related constant.

Signed-off-by: Marek Zawirski <marek.zawirski@xxxxxxxxx>
---
 .../src/org/spearce/jgit/lib/Constants.java        |    8 ++++++++
 .../src/org/spearce/jgit/lib/PackFile.java         |   12 +++++-------
 .../src/org/spearce/jgit/transport/IndexPack.java  |    8 +++-----
 3 files changed, 16 insertions(+), 12 deletions(-)

diff --git a/org.spearce.jgit/src/org/spearce/jgit/lib/Constants.java b/org.spearce.jgit/src/org/spearce/jgit/lib/Constants.java
index d1e8a41..7c2cef9 100644
--- a/org.spearce.jgit/src/org/spearce/jgit/lib/Constants.java
+++ b/org.spearce.jgit/src/org/spearce/jgit/lib/Constants.java
@@ -188,6 +188,14 @@ public final class Constants {
 	 */
 	public static final int OBJ_REF_DELTA = 7;
 
+	/**
+	 * Pack file signature that occurs at file header - identifies file as Git
+	 * packfile formatted.
+	 * <p>
+	 * <b>This constant is fixed and is defined by the Git packfile format.</b>
+	 */
+	public static final byte[] PACK_SIGNATURE = { 'P', 'A', 'C', 'K' };
+	
 	/** Native character encoding for commit messages, file names... */
 	public static final String CHARACTER_ENCODING = "UTF-8";
 
diff --git a/org.spearce.jgit/src/org/spearce/jgit/lib/PackFile.java b/org.spearce.jgit/src/org/spearce/jgit/lib/PackFile.java
index ccff47d..b1fbc2a 100644
--- a/org.spearce.jgit/src/org/spearce/jgit/lib/PackFile.java
+++ b/org.spearce.jgit/src/org/spearce/jgit/lib/PackFile.java
@@ -50,8 +50,6 @@ import org.spearce.jgit.util.NB;
  * objects are similar.
  */
 public class PackFile {
-	private static final byte[] SIGNATURE = { 'P', 'A', 'C', 'K' };
-
 	private final WindowedFile pack;
 
 	private final PackIndex idx;
@@ -165,17 +163,17 @@ public class PackFile {
 	private void readPackHeader() throws IOException {
 		final WindowCursor curs = new WindowCursor();
 		long position = 0;
-		final byte[] sig = new byte[SIGNATURE.length];
+		final byte[] sig = new byte[Constants.PACK_SIGNATURE.length];
 		final byte[] intbuf = new byte[4];
 		final long vers;
 
-		if (pack.read(position, sig, curs) != SIGNATURE.length)
+		if (pack.read(position, sig, curs) != Constants.PACK_SIGNATURE.length)
 			throw new IOException("Not a PACK file.");
-		for (int k = 0; k < SIGNATURE.length; k++) {
-			if (sig[k] != SIGNATURE[k])
+		for (int k = 0; k < Constants.PACK_SIGNATURE.length; k++) {
+			if (sig[k] != Constants.PACK_SIGNATURE[k])
 				throw new IOException("Not a PACK file.");
 		}
-		position += SIGNATURE.length;
+		position += Constants.PACK_SIGNATURE.length;
 
 		pack.readFully(position, intbuf, curs);
 		vers = NB.decodeUInt32(intbuf, 0);
diff --git a/org.spearce.jgit/src/org/spearce/jgit/transport/IndexPack.java b/org.spearce.jgit/src/org/spearce/jgit/transport/IndexPack.java
index 0b5c962..bec211c 100644
--- a/org.spearce.jgit/src/org/spearce/jgit/transport/IndexPack.java
+++ b/org.spearce.jgit/src/org/spearce/jgit/transport/IndexPack.java
@@ -74,8 +74,6 @@ public class IndexPack {
 	/** Progress message when computing names of delta compressed objects. */
 	public static final String PROGRESS_RESOLVE_DELTA = "Resolving deltas";
 
-	private static final byte[] SIGNATURE = { 'P', 'A', 'C', 'K' };
-
 	private static final int BUFFER_SIZE = 2048;
 
 	/**
@@ -477,10 +475,10 @@ public class IndexPack {
 	}
 
 	private void readPackHeader() throws IOException {
-		final int hdrln = SIGNATURE.length + 4 + 4;
+		final int hdrln = Constants.PACK_SIGNATURE.length + 4 + 4;
 		final int p = fillFromInput(hdrln);
-		for (int k = 0; k < SIGNATURE.length; k++)
-			if (buf[p + k] != SIGNATURE[k])
+		for (int k = 0; k < Constants.PACK_SIGNATURE.length; k++)
+			if (buf[p + k] != Constants.PACK_SIGNATURE[k])
 				throw new IOException("Not a PACK file.");
 
 		final long vers = NB.decodeUInt32(buf, p + 4);
-- 
1.5.5.1

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux