projects
/
libam7xxx.git
/ blobdiff
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
am7xxx: clean up the exit path in open_device()
[libam7xxx.git]
/
src
/
am7xxx.c
diff --git
a/src/am7xxx.c
b/src/am7xxx.c
index
006b216
..
fedf11a
100644
(file)
--- a/
src/am7xxx.c
+++ b/
src/am7xxx.c
@@
-747,12
+747,15
@@
static int open_device(am7xxx_context *ctx,
debug(ctx, "libusb_claim_interface failed\n");
debug(ctx, "Cannot claim interface %hhu\n",
(*dev)->desc->interface_number);
debug(ctx, "libusb_claim_interface failed\n");
debug(ctx, "Cannot claim interface %hhu\n",
(*dev)->desc->interface_number);
-out_libusb_close:
- libusb_close((*dev)->usb_device);
- (*dev)->usb_device = NULL;
+ goto out_libusb_close;
}
out:
return ret;
}
out:
return ret;
+
+out_libusb_close:
+ libusb_close((*dev)->usb_device);
+ (*dev)->usb_device = NULL;
+ return ret;
}
typedef enum {
}
typedef enum {
@@
-837,11
+840,12
@@
static int scan_devices(am7xxx_context *ctx, scan_op op,
open_device_index,
list[i],
dev);
open_device_index,
list[i],
dev);
- if (ret < 0)
{
+ if (ret < 0)
debug(ctx, "open_device failed\n");
debug(ctx, "open_device failed\n");
- goto out;
- }
+ /* exit the loop unconditionally after
+ * attempting to open the device
+ * requested by the user */
goto out;
}
current_index++;
goto out;
}
current_index++;