Index: chrome/browser/media/router/discovery/dial/dial_media_sink_service_impl.cc |
diff --git a/chrome/browser/media/router/discovery/dial/dial_media_sink_service_impl.cc b/chrome/browser/media/router/discovery/dial/dial_media_sink_service_impl.cc |
index 73551d9cb89211ab8d6db2718cc0951f8391292b..fde508f6cd901134c52eb20d99a9658c04e3e58c 100644 |
--- a/chrome/browser/media/router/discovery/dial/dial_media_sink_service_impl.cc |
+++ b/chrome/browser/media/router/discovery/dial/dial_media_sink_service_impl.cc |
@@ -34,6 +34,7 @@ void DialMediaSinkServiceImpl::Start() { |
dial_registry_ = DialRegistry::GetInstance(); |
dial_registry_->RegisterObserver(this); |
dial_registry_->OnListenerAdded(); |
+ StartTimer(); |
} |
void DialMediaSinkServiceImpl::Stop() { |
@@ -44,6 +45,7 @@ void DialMediaSinkServiceImpl::Stop() { |
dial_registry_->OnListenerRemoved(); |
dial_registry_->UnregisterObserver(this); |
dial_registry_ = nullptr; |
+ finish_timer_.reset(); |
Kevin M
2017/05/24 00:52:55
This is calling unique_ptr::reset() which will des
zhaobin
2017/05/24 17:45:51
On purpose. Need to destroy timer so that OnDevice
Kevin M
2017/05/24 18:13:29
OnDeviceDescriptionAvailable() will segfault, thou
zhaobin
2017/05/25 21:27:06
No segfault in the latest patch.
|
} |
DeviceDescriptionService* DialMediaSinkServiceImpl::GetDescriptionService() { |
@@ -80,11 +82,6 @@ void DialMediaSinkServiceImpl::OnDialDeviceEvent( |
DVLOG(2) << "DialMediaSinkServiceImpl::OnDialDeviceEvent found " |
<< devices.size() << " devices"; |
- // Timer starts in |OnDialDeviceEvent()|, and expires 3 seconds later. If |
- // |OnDeviceDescriptionAvailable()| is called after |finish_timer_| expires, |
- // |finish_timer_| is restarted. |
- StartTimer(); |
- |
current_sinks_.clear(); |
current_devices_ = devices; |