Remove libusb_device field

It is possible to retrieve the device instance from the handle via
libusb_get_device(), so we don't need to reference the device one more
time.

PR #2974 <https://github.com/Genymobile/scrcpy/pull/2974>
This commit is contained in:
Romain Vimont 2022-01-26 21:40:46 +01:00
parent adda47b0f7
commit b779eca8d3
2 changed files with 4 additions and 6 deletions

View file

@ -84,17 +84,17 @@ sc_usb_init(struct sc_usb *usb, const char *serial) {
return false; return false;
} }
usb->device = sc_usb_find_device(serial); libusb_device *device = sc_usb_find_device(serial);
if (!usb->device) { if (!device) {
LOGW("USB device %s not found", serial); LOGW("USB device %s not found", serial);
libusb_exit(usb->context); libusb_exit(usb->context);
return false; return false;
} }
usb->handle = sc_usb_open_handle(usb->device); usb->handle = sc_usb_open_handle(device);
libusb_unref_device(device);
if (!usb->handle) { if (!usb->handle) {
LOGW("Could not open USB device %s", serial); LOGW("Could not open USB device %s", serial);
libusb_unref_device(usb->device);
libusb_exit(usb->context); libusb_exit(usb->context);
return false; return false;
} }
@ -105,6 +105,5 @@ sc_usb_init(struct sc_usb *usb, const char *serial) {
void void
sc_usb_destroy(struct sc_usb *usb) { sc_usb_destroy(struct sc_usb *usb) {
libusb_close(usb->handle); libusb_close(usb->handle);
libusb_unref_device(usb->device);
libusb_exit(usb->context); libusb_exit(usb->context);
} }

View file

@ -8,7 +8,6 @@
struct sc_usb { struct sc_usb {
libusb_context *context; libusb_context *context;
libusb_device *device;
libusb_device_handle *handle; libusb_device_handle *handle;
}; };