Bug fix from K. Kakima
[zxing.git] / core / src / com / google / zxing / qrcode / detector / FinderPatternFinder.java
index 0c8a91e..a834f06 100755 (executable)
@@ -49,7 +49,7 @@ final class FinderPatternFinder {
    */\r
   FinderPatternFinder(MonochromeBitmapSource image) {\r
     this.image = image;\r
-    this.possibleCenters = new Vector(5);\r
+    this.possibleCenters = new Vector();\r
   }\r
 \r
   FinderPatternInfo find() throws ReaderException {\r
@@ -437,12 +437,11 @@ final class FinderPatternFinder {
 \r
     if (size == 3) {\r
       // Found just enough -- hope these are good!\r
-      // toArray() is not available\r
-      FinderPattern[] result = new FinderPattern[possibleCenters.size()];\r
-      for (int i = 0; i < possibleCenters.size(); i++) {\r
-        result[i] = (FinderPattern) possibleCenters.elementAt(i);\r
-      }\r
-      return result;\r
+      return new FinderPattern[] {\r
+        (FinderPattern) possibleCenters.elementAt(0),\r
+        (FinderPattern) possibleCenters.elementAt(1),\r
+        (FinderPattern) possibleCenters.elementAt(2) \r
+      };\r
     }\r
 \r
     possibleCenters.setSize(size);\r
@@ -459,11 +458,11 @@ final class FinderPatternFinder {
     // We don't have java.util.Collections in J2ME\r
     Collections.insertionSort(possibleCenters, new ClosestToAverageComparator(averageModuleSize));\r
 \r
-    FinderPattern[] result = new FinderPattern[3];\r
-    for (int i = 0; i < 3; i++) {\r
-      result[i] = (FinderPattern) possibleCenters.elementAt(i);\r
-    }\r
-    return result;\r
+    return new FinderPattern[] {\r
+      (FinderPattern) possibleCenters.elementAt(0),\r
+      (FinderPattern) possibleCenters.elementAt(1),\r
+      (FinderPattern) possibleCenters.elementAt(2)\r
+    };\r
   }\r
 \r
   /**\r
@@ -511,7 +510,7 @@ final class FinderPatternFinder {
       bottomLeft = temp;\r
     }\r
 \r
-    return new FinderPattern[]{bottomLeft, topLeft, topRight};\r
+    return new FinderPattern[] {bottomLeft, topLeft, topRight};\r
   }\r
 \r
   /**\r
@@ -536,17 +535,14 @@ final class FinderPatternFinder {
    * <p>Orders by variance from average module size, ascending.</p>\r
    */\r
   private static class ClosestToAverageComparator implements Comparator {\r
-    private float averageModuleSize;\r
-\r
+    private final float averageModuleSize;\r
     private ClosestToAverageComparator(float averageModuleSize) {\r
       this.averageModuleSize = averageModuleSize;\r
     }\r
-\r
     public int compare(Object center1, Object center2) {\r
-      return\r
-          Math.abs(((FinderPattern) center1).getEstimatedModuleSize() - averageModuleSize) <\r
-              Math.abs(((FinderPattern) center2).getEstimatedModuleSize() - averageModuleSize) ?\r
-              -1 :\r
+      return Math.abs(((FinderPattern) center1).getEstimatedModuleSize() - averageModuleSize) <\r
+             Math.abs(((FinderPattern) center2).getEstimatedModuleSize() - averageModuleSize) ?\r
+             -1 :\r
               1;\r
     }\r
   }\r