summaryrefslogtreecommitdiff
path: root/altoslib/AltosHexfile.java
diff options
context:
space:
mode:
authorBdale Garbee <bdale@gag.com>2018-08-05 11:21:37 +0800
committerBdale Garbee <bdale@gag.com>2018-08-05 11:21:37 +0800
commitd8627bb7b46fc991786835afa38cd720e9e75812 (patch)
treee14ae029a4ead29a4a7ccccb39af556e32413d36 /altoslib/AltosHexfile.java
parent59e23c27c2a85d7d748223e444b24d19937afe47 (diff)
parent8830fbc99565f753c0ae1f3d9f4b079860c2634a (diff)
Merge branch 'master' into branch-1.8
Diffstat (limited to 'altoslib/AltosHexfile.java')
-rw-r--r--altoslib/AltosHexfile.java20
1 files changed, 12 insertions, 8 deletions
diff --git a/altoslib/AltosHexfile.java b/altoslib/AltosHexfile.java
index 6aa98383..f2ab4bea 100644
--- a/altoslib/AltosHexfile.java
+++ b/altoslib/AltosHexfile.java
@@ -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() {