summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrpaquay@chromium.org <rpaquay@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-07-31 12:07:19 +0000
committerrpaquay@chromium.org <rpaquay@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-07-31 12:07:19 +0000
commit76caec0e4f39d6ff789970702919974eb638fe45 (patch)
tree120b89ab7f002a6aa7a6db3ef482b887498f9e9d
parentf81b4abcd6f95b7ad59b8a37089591ae1e739de0 (diff)
downloadchromium_src-76caec0e4f39d6ff789970702919974eb638fe45.zip
chromium_src-76caec0e4f39d6ff789970702919974eb638fe45.tar.gz
chromium_src-76caec0e4f39d6ff789970702919974eb638fe45.tar.bz2
Delay assigning socket member to avoid DCHECK in destructor.
BUG=399045 Review URL: https://codereview.chromium.org/427403002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@286752 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--device/bluetooth/bluetooth_socket_win.cc6
1 files changed, 4 insertions, 2 deletions
diff --git a/device/bluetooth/bluetooth_socket_win.cc b/device/bluetooth/bluetooth_socket_win.cc
index 283c63e..15a5198 100644
--- a/device/bluetooth/bluetooth_socket_win.cc
+++ b/device/bluetooth/bluetooth_socket_win.cc
@@ -192,7 +192,8 @@ void BluetoothSocketWin::DoConnect(
return;
}
- ResetTCPSocket();
+ scoped_ptr<net::TCPSocket> scoped_socket(
+ new net::TCPSocket(NULL, net::NetLog::Source()));
net::EnsureWinsockInit();
SOCKET socket_fd = socket(AF_BTH, SOCK_STREAM, BTHPROTO_RFCOMM);
SOCKADDR_BTH sa;
@@ -217,7 +218,7 @@ void BluetoothSocketWin::DoConnect(
// Note: We don't have a meaningful |IPEndPoint|, but that is ok since the
// TCPSocket implementation does not actually require one.
int net_result =
- tcp_socket()->AdoptConnectedSocket(socket_fd, net::IPEndPoint());
+ scoped_socket->AdoptConnectedSocket(socket_fd, net::IPEndPoint());
if (net_result != net::OK) {
error_callback.Run("Error connecting to socket: " +
std::string(net::ErrorToString(net_result)));
@@ -225,6 +226,7 @@ void BluetoothSocketWin::DoConnect(
return;
}
+ SetTCPSocket(scoped_socket.Pass());
success_callback.Run();
}