diff options
| author | Bdale Garbee <bdale@gag.com> | 2018-08-05 11:21:37 +0800 | 
|---|---|---|
| committer | Bdale Garbee <bdale@gag.com> | 2018-08-05 11:21:37 +0800 | 
| commit | d8627bb7b46fc991786835afa38cd720e9e75812 (patch) | |
| tree | e14ae029a4ead29a4a7ccccb39af556e32413d36 /altoslib/AltosHexfile.java | |
| parent | 59e23c27c2a85d7d748223e444b24d19937afe47 (diff) | |
| parent | 8830fbc99565f753c0ae1f3d9f4b079860c2634a (diff) | |
Merge branch 'master' into branch-1.8
Diffstat (limited to 'altoslib/AltosHexfile.java')
| -rw-r--r-- | altoslib/AltosHexfile.java | 20 | 
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() {  | 
