Index: device/bluetooth/bluetooth_discovery_session.cc |
diff --git a/device/bluetooth/bluetooth_discovery_session.cc b/device/bluetooth/bluetooth_discovery_session.cc |
index 6818a3c6a4fc4a335efeda3bd53329c0c3fe6b8b..ba5f5fdba64d2047a908d69cadc3b7cda2e4eebb 100644 |
--- a/device/bluetooth/bluetooth_discovery_session.cc |
+++ b/device/bluetooth/bluetooth_discovery_session.cc |
@@ -25,7 +25,7 @@ BluetoothDiscoverySession::~BluetoothDiscoverySession() { |
return; |
} |
Stop(base::Bind(&base::DoNothing), base::Bind(&base::DoNothing)); |
- adapter_->DiscoverySessionDestroyed(this); |
+ MarkAsInactive(); |
} |
bool BluetoothDiscoverySession::IsActive() const { |
@@ -50,12 +50,16 @@ void BluetoothDiscoverySession::Stop( |
} |
void BluetoothDiscoverySession::OnStop(const base::Closure& callback) { |
- active_ = false; |
+ MarkAsInactive(); |
callback.Run(); |
} |
void BluetoothDiscoverySession::MarkAsInactive() { |
+ if (!active_) |
+ return; |
active_ = false; |
+ DCHECK(adapter_.get()); |
+ adapter_->DiscoverySessionBecameInactive(this); |
} |
} // namespace device |