| Index: chrome/browser/devtools/device/usb/usb_device_provider.cc
|
| diff --git a/chrome/browser/devtools/device/usb/usb_device_provider.cc b/chrome/browser/devtools/device/usb/usb_device_provider.cc
|
| index a67d60cc0e0ef3fc36319b4082c4f58d8c2f2496..258365ce817d5b328244d9c9e42d187314d957f7 100644
|
| --- a/chrome/browser/devtools/device/usb/usb_device_provider.cc
|
| +++ b/chrome/browser/devtools/device/usb/usb_device_provider.cc
|
| @@ -19,9 +19,12 @@ const char kLocalAbstractCommand[] = "localabstract:%s";
|
| const int kBufferSize = 16 * 1024;
|
|
|
| void OnOpenSocket(const UsbDeviceProvider::SocketCallback& callback,
|
| - net::StreamSocket* socket,
|
| + net::StreamSocket* socket_raw,
|
| int result) {
|
| - callback.Run(result, result == net::OK ? socket : NULL);
|
| + scoped_ptr<net::StreamSocket> socket(socket_raw);
|
| + if (result != net::OK)
|
| + socket.reset();
|
| + callback.Run(result, socket.Pass());
|
| }
|
|
|
| void OnRead(net::StreamSocket* socket,
|
| @@ -68,7 +71,8 @@ void RunCommand(scoped_refptr<AndroidUsbDevice> device,
|
| callback.Run(net::ERR_CONNECTION_FAILED, std::string());
|
| return;
|
| }
|
| - int result = socket->Connect(base::Bind(&OpenedForCommand, callback, socket));
|
| + int result = socket->Connect(
|
| + base::Bind(&OpenedForCommand, callback, socket));
|
| if (result != net::ERR_IO_PENDING)
|
| callback.Run(result, std::string());
|
| }
|
| @@ -107,19 +111,21 @@ void UsbDeviceProvider::OpenSocket(const std::string& serial,
|
| const SocketCallback& callback) {
|
| UsbDeviceMap::iterator it = device_map_.find(serial);
|
| if (it == device_map_.end()) {
|
| - callback.Run(net::ERR_CONNECTION_FAILED, NULL);
|
| + callback.Run(net::ERR_CONNECTION_FAILED,
|
| + make_scoped_ptr<net::StreamSocket>(NULL));
|
| return;
|
| }
|
| std::string socket_name =
|
| base::StringPrintf(kLocalAbstractCommand, name.c_str());
|
| net::StreamSocket* socket = it->second->CreateSocket(socket_name);
|
| if (!socket) {
|
| - callback.Run(net::ERR_CONNECTION_FAILED, NULL);
|
| + callback.Run(net::ERR_CONNECTION_FAILED,
|
| + make_scoped_ptr<net::StreamSocket>(NULL));
|
| return;
|
| }
|
| int result = socket->Connect(base::Bind(&OnOpenSocket, callback, socket));
|
| if (result != net::ERR_IO_PENDING)
|
| - callback.Run(result, NULL);
|
| + callback.Run(result, make_scoped_ptr<net::StreamSocket>(NULL));
|
| }
|
|
|
| void UsbDeviceProvider::ReleaseDevice(const std::string& serial) {
|
|
|