Merge "Move some constants in BinaryDictInputOutput to FormatSpec."
diff --git a/java/src/com/android/inputmethod/latin/makedict/BinaryDictIOUtils.java b/java/src/com/android/inputmethod/latin/makedict/BinaryDictIOUtils.java
index c7b063d..7c7064e 100644
--- a/java/src/com/android/inputmethod/latin/makedict/BinaryDictIOUtils.java
+++ b/java/src/com/android/inputmethod/latin/makedict/BinaryDictIOUtils.java
@@ -39,8 +39,6 @@
 
 public final class BinaryDictIOUtils {
     private static final boolean DBG = false;
-    private static final int MSB24 = 0x800000;
-    private static final int SINT24_MAX = 0x7FFFFF;
     private static final int MAX_JUMPS = 10000;
 
     private BinaryDictIOUtils() {
@@ -921,8 +919,8 @@
             // reached the end of the array.
             final int linkAddressPosition = buffer.position();
             int nextLink = buffer.readUnsignedInt24();
-            if ((nextLink & MSB24) != 0) {
-                nextLink = -(nextLink & SINT24_MAX);
+            if ((nextLink & FormatSpec.MSB24) != 0) {
+                nextLink = -(nextLink & FormatSpec.SINT24_MAX);
             }
             if (nextLink == FormatSpec.NO_FORWARD_LINK_ADDRESS) {
                 /*
diff --git a/java/src/com/android/inputmethod/latin/makedict/BinaryDictInputOutput.java b/java/src/com/android/inputmethod/latin/makedict/BinaryDictInputOutput.java
index 504349a..5710e14 100644
--- a/java/src/com/android/inputmethod/latin/makedict/BinaryDictInputOutput.java
+++ b/java/src/com/android/inputmethod/latin/makedict/BinaryDictInputOutput.java
@@ -449,10 +449,6 @@
         }
     }
 
-    private static final int UINT8_MAX = 0xFF;
-    private static final int UINT16_MAX = 0xFFFF;
-    private static final int UINT24_MAX = 0xFFFFFF;
-
     /**
      * Compute the size, in bytes, that an address will occupy.
      *
@@ -464,22 +460,18 @@
      * @return the byte size.
      */
     static int getByteSize(final int address) {
-        assert(address <= UINT24_MAX);
+        assert(address <= FormatSpec.UINT24_MAX);
         if (!hasChildrenAddress(address)) {
             return 0;
-        } else if (Math.abs(address) <= UINT8_MAX) {
+        } else if (Math.abs(address) <= FormatSpec.UINT8_MAX) {
             return 1;
-        } else if (Math.abs(address) <= UINT16_MAX) {
+        } else if (Math.abs(address) <= FormatSpec.UINT16_MAX) {
             return 2;
         } else {
             return 3;
         }
     }
 
-    private static final int SINT24_MAX = 0x7FFFFF;
-    private static final int MSB8 = 0x80;
-    private static final int MSB24 = 0x800000;
-
     // End utility methods.
 
     // This method is responsible for finding a nice ordering of the nodes that favors run-time
@@ -814,7 +806,8 @@
             buffer[index] = buffer[index + 1] = buffer[index + 2] = 0;
         } else {
             final int absAddress = Math.abs(address);
-            buffer[index++] = (byte)((address < 0 ? MSB8 : 0) | (0xFF & (absAddress >> 16)));
+            buffer[index++] =
+                    (byte)((address < 0 ? FormatSpec.MSB8 : 0) | (0xFF & (absAddress >> 16)));
             buffer[index++] = (byte)(0xFF & (absAddress >> 8));
             buffer[index++] = (byte)(0xFF & absAddress);
         }
@@ -978,8 +971,8 @@
                 buffer[index] = buffer[index + 1] = buffer[index + 2] = 0;
             } else {
                 final int absAddress = Math.abs(address);
-                assert(absAddress <= SINT24_MAX);
-                buffer[index] = (byte)((address < 0 ? MSB8 : 0)
+                assert(absAddress <= FormatSpec.SINT24_MAX);
+                buffer[index] = (byte)((address < 0 ? FormatSpec.MSB8 : 0)
                         | ((absAddress >> 16) & 0xFF));
                 buffer[index + 1] = (byte)((absAddress >> 8) & 0xFF);
                 buffer[index + 2] = (byte)(absAddress & 0xFF);
@@ -1300,8 +1293,8 @@
         if (options.mSupportsDynamicUpdate) {
             final int address = buffer.readUnsignedInt24();
             if (address == 0) return FormatSpec.NO_CHILDREN_ADDRESS;
-            if ((address & MSB24) != 0) {
-                return -(address & SINT24_MAX);
+            if ((address & FormatSpec.MSB24) != 0) {
+                return -(address & FormatSpec.SINT24_MAX);
             } else {
                 return address;
             }
@@ -1324,8 +1317,8 @@
             final FormatOptions formatOptions) {
         if (supportsDynamicUpdate(formatOptions)) {
             final int parentAddress = buffer.readUnsignedInt24();
-            final int sign = ((parentAddress & MSB24) != 0) ? -1 : 1;
-            return sign * (parentAddress & SINT24_MAX);
+            final int sign = ((parentAddress & FormatSpec.MSB24) != 0) ? -1 : 1;
+            return sign * (parentAddress & FormatSpec.SINT24_MAX);
         } else {
             return FormatSpec.NO_PARENT_ADDRESS;
         }
diff --git a/java/src/com/android/inputmethod/latin/makedict/FormatSpec.java b/java/src/com/android/inputmethod/latin/makedict/FormatSpec.java
index 2bb5d8b..9af66ed 100644
--- a/java/src/com/android/inputmethod/latin/makedict/FormatSpec.java
+++ b/java/src/com/android/inputmethod/latin/makedict/FormatSpec.java
@@ -263,6 +263,13 @@
     static final int NOT_VALID_WORD = -99;
     static final int SIGNED_CHILDREN_ADDRESS_SIZE = 3;
 
+    static final int UINT8_MAX = 0xFF;
+    static final int UINT16_MAX = 0xFFFF;
+    static final int UINT24_MAX = 0xFFFFFF;
+    static final int SINT24_MAX = 0x7FFFFF;
+    static final int MSB8 = 0x80;
+    static final int MSB24 = 0x800000;
+
     /**
      * Options about file format.
      */