altoslib: Use common constants for flash action messages
[fw/altos] / altoslib / AltosHexfile.java
index 6aa98383e9fc38d92d93b928a97d4990c6fc8258..67cc3eeea16a20473f7665b1900519adbcb0de43 100644 (file)
@@ -16,7 +16,7 @@
  * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
  */
 
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
 
 import java.io.*;
 import java.util.LinkedList;
@@ -294,15 +294,19 @@ public class AltosHexfile {
                if (usb_descriptors == null)
                        return -1;
 
-               /* Walk the descriptors looking for the device */
-               a = usb_descriptors.address;
-               while (get_u8(a+1) != AO_USB_DESC_DEVICE) {
-                       int delta = get_u8(a);
-                       a += delta;
-                       if (delta == 0 || a >= max_address)
-                               return -1;
+               try {
+                       /* Walk the descriptors looking for the device */
+                       a = usb_descriptors.address;
+                       while (get_u8(a+1) != AO_USB_DESC_DEVICE) {
+                               int delta = get_u8(a);
+                               a += delta;
+                               if (delta == 0 || a >= max_address)
+                                       return -1;
+                       }
+                       return a;
+               } catch (ArrayIndexOutOfBoundsException ae) {
+                       return -1;
                }
-               return a;
        }
 
        public AltosUsbId find_usb_id() {