Guess of a fix at array index out of bounds problem observed in the wild
authorsrowen <srowen@59b500cc-1b3d-0410-9834-0bbf25fbcc57>
Tue, 22 Dec 2009 12:19:31 +0000 (12:19 +0000)
committersrowen <srowen@59b500cc-1b3d-0410-9834-0bbf25fbcc57>
Tue, 22 Dec 2009 12:19:31 +0000 (12:19 +0000)
git-svn-id: http://zxing.googlecode.com/svn/trunk@1165 59b500cc-1b3d-0410-9834-0bbf25fbcc57

core/src/com/google/zxing/qrcode/detector/Detector.java

index ee72440..9807177 100644 (file)
@@ -263,13 +263,13 @@ public class Detector {
       // "to" should the be the first value not included, so, the first value off
       // the edge is -1
       otherToX = -1;
-    } else if (otherToX >= image.getWidth()) {
+    } else if (otherToX > image.getWidth()) {
       otherToX = image.getWidth();
     }
     int otherToY = fromY - (toY - fromY);
     if (otherToY < 0) {
       otherToY = -1;
-    } else if (otherToY >= image.getHeight()) {
+    } else if (otherToY > image.getHeight()) {
       otherToY = image.getHeight();
     }
     result += sizeOfBlackWhiteBlackRun(fromX, fromY, otherToX, otherToY);
@@ -326,6 +326,9 @@ public class Detector {
       if (error > 0) {
         y += ystep;
         error -= dx;
+        if (y == toY) {
+          break;
+        }
       }
     }
     int diffX = toX - fromX;