More minor code improvements
authorsrowen <srowen@59b500cc-1b3d-0410-9834-0bbf25fbcc57>
Wed, 5 Mar 2008 21:55:18 +0000 (21:55 +0000)
committersrowen <srowen@59b500cc-1b3d-0410-9834-0bbf25fbcc57>
Wed, 5 Mar 2008 21:55:18 +0000 (21:55 +0000)
git-svn-id: http://zxing.googlecode.com/svn/trunk@248 59b500cc-1b3d-0410-9834-0bbf25fbcc57

core/src/com/google/zxing/common/BitArray.java
core/src/com/google/zxing/common/reedsolomon/GF256Poly.java
core/src/com/google/zxing/qrcode/decoder/DecodedBitStreamParser.java

index 0d2884c..c22fd92 100644 (file)
@@ -27,6 +27,9 @@ public final class BitArray {
   private final int size;\r
 \r
   public BitArray(int size) {\r
+    if (size < 1) {\r
+      throw new IllegalArgumentException("size must be at least 1");\r
+    }\r
     this.size = size;\r
     this.bits = makeArray(size);\r
   }\r
index f5968c1..95f23c4 100644 (file)
@@ -44,16 +44,17 @@ final class GF256Poly {
       throw new IllegalArgumentException();
     }
     this.field = field;
-    if (coefficients.length > 1 && coefficients[0] == 0) {
+    int coefficientsLength = coefficients.length;
+    if (coefficientsLength > 1 && coefficients[0] == 0) {
       // Leading term must be non-zero for anything except the constant polynomial "0"
       int firstNonZero = 1;
-      while (firstNonZero < coefficients.length && coefficients[firstNonZero] == 0) {
+      while (firstNonZero < coefficientsLength && coefficients[firstNonZero] == 0) {
         firstNonZero++;
       }
-      if (firstNonZero == coefficients.length) {
+      if (firstNonZero == coefficientsLength) {
         this.coefficients = field.getZero().coefficients;
       } else {
-        this.coefficients = new int[coefficients.length - firstNonZero];
+        this.coefficients = new int[coefficientsLength - firstNonZero];
         System.arraycopy(coefficients,
             firstNonZero,
             this.coefficients,
@@ -190,9 +191,8 @@ final class GF256Poly {
     }
     int size = coefficients.length;
     int[] product = new int[size];
-    System.arraycopy(coefficients, 0, product, 0, size);
     for (int i = 0; i < size; i++) {
-      product[i] = field.multiply(product[i], scalar);
+      product[i] = field.multiply(coefficients[i], scalar);
     }
     return new GF256Poly(field, product);
   }
@@ -206,9 +206,8 @@ final class GF256Poly {
     }
     int size = coefficients.length;
     int[] product = new int[size + degree];
-    System.arraycopy(coefficients, 0, product, 0, size);
     for (int i = 0; i < size; i++) {
-      product[i] = field.multiply(product[i], coefficient);
+      product[i] = field.multiply(coefficients[i], coefficient);
     }
     return new GF256Poly(field, product);
   }
index c53f481..059007d 100644 (file)
@@ -40,14 +40,14 @@ final class DecodedBitStreamParser {
       ' ', '$', '%', '*', '+', '-', '.', '/', ':'
   };
   private static final String SHIFT_JIS = "Shift_JIS";
+  private static final String EUC_JP = "EUC-JP";
   private static final boolean ASSUME_SHIFT_JIS;
   private static final String UTF8 = "UTF-8";
   private static final String ISO88591 = "ISO-8859-1";
 
   static {
     String platformDefault = System.getProperty("file.encoding");
-    ASSUME_SHIFT_JIS = SHIFT_JIS.equalsIgnoreCase(platformDefault) ||
-        "EUC-JP".equalsIgnoreCase(platformDefault);
+    ASSUME_SHIFT_JIS = SHIFT_JIS.equalsIgnoreCase(platformDefault) || EUC_JP.equalsIgnoreCase(platformDefault);
   }
 
   private DecodedBitStreamParser() {