# HG changeset patch # User Ivo Smits # Date 1376924210 -7200 # Node ID 7e4dae99f9198e1087eab2aa66e54fd42162c96a # Parent f553f6e0a3965ccb7fb5f883419da267efbc44be USBLib: fix unhandled exception in WinUSB shutdown after failure to open device diff -r f553f6e0a396 -r 7e4dae99f919 USBLib/Communication/WinUsb/WinUsbDevice.cs --- a/USBLib/Communication/WinUsb/WinUsbDevice.cs Tue Jul 16 14:02:33 2013 +0200 +++ b/USBLib/Communication/WinUsb/WinUsbDevice.cs Mon Aug 19 16:56:50 2013 +0200 @@ -60,7 +60,7 @@ //[DllImport(WIN_USB_DLL, SetLastError = true)] //private static extern bool WinUsb_SetPipePolicy(SafeWinUsbInterfaceHandle InterfaceHandle, byte PipeID, UInt32 PolicyType, UInt32 ValueLength, ref Byte Value); SafeFileHandle DeviceHandle; - private SafeWinUsbInterfaceHandle[] InterfaceHandles = null; + private SafeWinUsbInterfaceHandle[] InterfaceHandles = new SafeWinUsbInterfaceHandle[0]; private int[] EndpointToInterfaceIn = new int[0]; private int[] EndpointToInterfaceOut = new int[0]; public IUsbDeviceRegistry Registry { get; private set; } @@ -132,7 +132,7 @@ } public override void Close() { - foreach (SafeWinUsbInterfaceHandle ih in InterfaceHandles) ih.Close(); + foreach (SafeWinUsbInterfaceHandle ih in InterfaceHandles) if (ih != null) ih.Close(); InterfaceHandles = new SafeWinUsbInterfaceHandle[0]; if (DeviceHandle != null) DeviceHandle.Close(); }