summaryrefslogtreecommitdiff
path: root/libusb/os/windows_winusb.h
diff options
context:
space:
mode:
authorChris Dickens <christopher.a.dickens@gmail.com>2020-04-28 12:08:08 -0700
committerChris Dickens <christopher.a.dickens@gmail.com>2020-04-28 12:08:08 -0700
commitd21956dc3357bb40cde6d47eaf2497caf8d0a2de (patch)
tree246da844ea27ccf20b25f2e91d3e7e24e88e398e /libusb/os/windows_winusb.h
parenta157b55656e7130c4ea118abcb1dfad21db428b8 (diff)
downloadlibusb-d21956dc3357bb40cde6d47eaf2497caf8d0a2de.tar.gz
core: Kill backend get_device_descriptor() function
Simplify the library by moving device descriptor initialization to the backend, while the device is being set up. This removes the duplication of essentially the same code in every backend. Add some missing calls to libusb_le16_to_cpu() when reading multi-byte fields from the "raw" device descriptor. It has worked thus far because the platforms not using the calls happen to be the same endianness as the USB bus. While here, throw in some static assertions to ensure there is no mismatch between the libusb device descriptor structure and any device descriptor structure provided by the platform headers. Signed-off-by: Chris Dickens <christopher.a.dickens@gmail.com>
Diffstat (limited to 'libusb/os/windows_winusb.h')
-rw-r--r--libusb/os/windows_winusb.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/libusb/os/windows_winusb.h b/libusb/os/windows_winusb.h
index ef667bd..39ce6fe 100644
--- a/libusb/os/windows_winusb.h
+++ b/libusb/os/windows_winusb.h
@@ -220,8 +220,8 @@ static inline void winusb_device_priv_release(struct libusb_device *dev)
free(priv->dev_id);
free(priv->path);
- if ((priv->dev_descriptor.bNumConfigurations > 0) && (priv->config_descriptor != NULL)) {
- for (i = 0; i < priv->dev_descriptor.bNumConfigurations; i++) {
+ if ((dev->device_descriptor.bNumConfigurations > 0) && (priv->config_descriptor != NULL)) {
+ for (i = 0; i < dev->device_descriptor.bNumConfigurations; i++) {
if (priv->config_descriptor[i] == NULL)
continue;
free((UCHAR *)priv->config_descriptor[i] - USB_DESCRIPTOR_REQUEST_SIZE);