Index: content/browser/device_orientation/data_fetcher_shared_memory_default.cc |
diff --git a/content/browser/device_orientation/data_fetcher_shared_memory_default.cc b/content/browser/device_orientation/data_fetcher_shared_memory_default.cc |
index 819605cb8abbfbe2728dd7e01bc4bc1f029ca102..0f66fc797730a0d4a1751f31e1f54e005b39b92e 100644 |
--- a/content/browser/device_orientation/data_fetcher_shared_memory_default.cc |
+++ b/content/browser/device_orientation/data_fetcher_shared_memory_default.cc |
@@ -9,7 +9,8 @@ |
namespace content { |
DataFetcherSharedMemory::~DataFetcherSharedMemory() { |
- StopFetchingDeviceMotionData(); |
+ if (started_) |
+ StopFetchingDeviceMotionData(); |
} |
bool DataFetcherSharedMemory::NeedsPolling() { |
@@ -24,9 +25,11 @@ bool DataFetcherSharedMemory::FetchDeviceMotionDataIntoBuffer() { |
bool DataFetcherSharedMemory::StartFetchingDeviceMotionData( |
DeviceMotionHardwareBuffer* buffer) { |
DCHECK(buffer); |
+ device_motion_buffer_ = buffer; |
device_motion_buffer_->seqlock.WriteBegin(); |
device_motion_buffer_->data.allAvailableSensorsAreActive = true; |
device_motion_buffer_->seqlock.WriteEnd(); |
+ started_ = true; |
return true; |
} |
@@ -34,6 +37,7 @@ void DataFetcherSharedMemory::StopFetchingDeviceMotionData() { |
device_motion_buffer_->seqlock.WriteBegin(); |
device_motion_buffer_->data.allAvailableSensorsAreActive = false; |
device_motion_buffer_->seqlock.WriteEnd(); |
+ started_ = false; |
} |
} // namespace content |