Index: device/bluetooth/bluetooth_discovery_session.cc |
diff --git a/device/bluetooth/bluetooth_discovery_session.cc b/device/bluetooth/bluetooth_discovery_session.cc |
index e07df34dd28eb102c4e0c9a8098584e331c11c7e..076123e3ad8f97c08461aead83370581cf8bed54 100644 |
--- a/device/bluetooth/bluetooth_discovery_session.cc |
+++ b/device/bluetooth/bluetooth_discovery_session.cc |
@@ -9,13 +9,23 @@ |
namespace device { |
-BluetoothDiscoverySession::BluetoothDiscoverySession(BluetoothAdapter* adapter) |
+BluetoothDiscoverySession::BluetoothDiscoverySession( |
+ scoped_refptr<BluetoothAdapter> adapter) |
: active_(true), |
adapter_(adapter), |
weak_ptr_factory_(this) { |
+ DCHECK(adapter_.get()); |
+} |
+ |
+BluetoothDiscoverySession::BluetoothDiscoverySession() |
+ : active_(false), |
+ weak_ptr_factory_(this) { |
} |
BluetoothDiscoverySession::~BluetoothDiscoverySession() { |
+ if (!active_) |
+ return; |
+ DCHECK(adapter_.get()); |
Stop(base::Bind(&base::DoNothing), base::Bind(&base::DoNothing)); |
adapter_->DiscoverySessionDestroyed(this); |
} |
@@ -28,11 +38,12 @@ void BluetoothDiscoverySession::Stop( |
const base::Closure& callback, |
const ErrorCallback& error_callback) { |
if (!active_) { |
- LOG(ERROR) << "Discovery session not active. Cannot stop."; |
+ LOG(WARNING) << "Discovery session not active. Cannot stop."; |
error_callback.Run(); |
return; |
} |
VLOG(1) << "Stopping device discovery session."; |
+ DCHECK(adapter_.get()); |
adapter_->RemoveDiscoverySession( |
base::Bind(&BluetoothDiscoverySession::OnStop, |
weak_ptr_factory_.GetWeakPtr(), |