Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(393)

Unified Diff: appengine/third_party/python-adb/adb/common.py

Issue 1424923006: Small fixes as found in staging. (Closed) Base URL: git@github.com:luci/luci-py.git@4_more_functionality
Patch Set: . Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: appengine/third_party/python-adb/adb/common.py
diff --git a/appengine/third_party/python-adb/adb/common.py b/appengine/third_party/python-adb/adb/common.py
index 167004695378c843ea52b873dfa40bdd820dd76d..26f19e0fae3b0a2708fbe024ee6f94441f920dbf 100644
--- a/appengine/third_party/python-adb/adb/common.py
+++ b/appengine/third_party/python-adb/adb/common.py
@@ -93,7 +93,7 @@ class UsbHandle(object):
sn = self.serial_number
except libusb1.USBError:
sn = ''
- if sn and sn != self._usb_info:
+ if sn and sn != self._usb_info and self._usb_info:
return '%s %s' % (self._usb_info, sn)
return self._usb_info
@@ -111,36 +111,39 @@ class UsbHandle(object):
self.port_path_str, previous[1])
previous[0].Close()
- for endpoint in self._setting.iterEndpoints():
- address = endpoint.getAddress()
- if address & libusb1.USB_ENDPOINT_DIR_MASK:
- self._read_endpoint = address
- self._max_read_packet_len = endpoint.getMaxPacketSize()
- else:
- self._write_endpoint = address
-
- assert self._read_endpoint is not None
- assert self._write_endpoint is not None
-
- handle = self._device.open()
- iface_number = self._setting.getNumber()
try:
- if handle.kernelDriverActive(iface_number):
- handle.detachKernelDriver(iface_number)
- except libusb1.USBError as e:
- if e.value == libusb1.LIBUSB_ERROR_NOT_FOUND:
- _LOG.warning(
- '%s.Open(): Kernel driver not found for interface: %s.',
- self.port_path_str, iface_number)
- else:
- raise
- handle.claimInterface(iface_number)
- self._handle = handle
- self._interface_number = iface_number
-
- stack = ''.join(traceback.format_stack()[:-2])
- with self._HANDLE_CACHE_LOCK:
- self._HANDLE_CACHE[port_path] = (self._handle, stack)
ghost stip (do not use) 2015/11/03 18:50:46 that seems wrong, wouldn't you still want to add t
M-A Ruel 2015/11/04 18:39:10 It's wrong too, I'll get rid of this once I figure
+ for endpoint in self._setting.iterEndpoints():
+ address = endpoint.getAddress()
+ if address & libusb1.USB_ENDPOINT_DIR_MASK:
+ self._read_endpoint = address
+ self._max_read_packet_len = endpoint.getMaxPacketSize()
+ else:
+ self._write_endpoint = address
+
+ assert self._read_endpoint is not None
+ assert self._write_endpoint is not None
+
+ self._handle = self._device.open()
+ self._interface_number = self._setting.getNumber()
+ try:
+ if self._handle.kernelDriverActive(self._interface_number):
+ self._handle.detachKernelDriver(self._interface_number)
+ except libusb1.USBError as e:
+ if e.value == libusb1.LIBUSB_ERROR_NOT_FOUND:
+ _LOG.warning(
+ '%s.Open(): Kernel driver not found for interface: %s.',
+ self.port_path_str, self._interface_number)
+ self.Close()
+ else:
+ raise
+ self._handle.claimInterface(self._interface_number)
+
+ stack = ''.join(traceback.format_stack()[:-2])
+ with self._HANDLE_CACHE_LOCK:
+ self._HANDLE_CACHE[port_path] = (self, stack)
+ except Exception as e:
+ self.Close()
+ raise
@property
def is_open(self):
@@ -171,7 +174,8 @@ class UsbHandle(object):
if self._handle is None:
return
try:
- self._handle.releaseInterface(self._interface_number)
+ if self._interface_number:
+ self._handle.releaseInterface(self._interface_number)
self._handle.close()
except libusb1.USBError as e:
_LOG.info('%s.Close(): USBError: %s', self.port_path_str, e)

Powered by Google App Engine
This is Rietveld 408576698