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 9f9a07874b7a2dafbcc4afe7d0864d9577af45c1..45d2296c01eff65e417ac5fd93a30aeffa742152 100644 |
--- a/content/browser/device_orientation/data_fetcher_shared_memory_default.cc |
+++ b/content/browser/device_orientation/data_fetcher_shared_memory_default.cc |
@@ -12,7 +12,8 @@ namespace { |
static bool SetMotionBuffer(content::DeviceMotionHardwareBuffer* buffer, |
bool enabled) { |
- DCHECK(buffer); |
+ if (!buffer) |
+ return false; |
buffer->seqlock.WriteBegin(); |
buffer->data.allAvailableSensorsAreActive = enabled; |
buffer->seqlock.WriteEnd(); |
@@ -29,14 +30,13 @@ DataFetcherSharedMemory::DataFetcherSharedMemory() { |
DataFetcherSharedMemory::~DataFetcherSharedMemory() { |
} |
-bool DataFetcherSharedMemory::Start(ConsumerType consumer_type) { |
- void* buffer = GetSharedMemoryBuffer(consumer_type); |
+bool DataFetcherSharedMemory::Start(ConsumerType consumer_type, void* buffer) { |
DCHECK(buffer); |
switch (consumer_type) { |
case CONSUMER_TYPE_MOTION: |
- return SetMotionBuffer( |
- static_cast<DeviceMotionHardwareBuffer*>(buffer), true); |
+ motion_buffer_ = static_cast<DeviceMotionHardwareBuffer*>(buffer); |
+ return SetMotionBuffer(motion_buffer_, true); |
case CONSUMER_TYPE_ORIENTATION: |
NOTIMPLEMENTED(); |
break; |
@@ -47,13 +47,10 @@ bool DataFetcherSharedMemory::Start(ConsumerType consumer_type) { |
} |
bool DataFetcherSharedMemory::Stop(ConsumerType consumer_type) { |
- void* buffer = GetSharedMemoryBuffer(consumer_type); |
- DCHECK(buffer); |
switch (consumer_type) { |
case CONSUMER_TYPE_MOTION: |
- return SetMotionBuffer( |
- static_cast<DeviceMotionHardwareBuffer*>(buffer), false); |
+ return SetMotionBuffer(motion_buffer_, false); |
case CONSUMER_TYPE_ORIENTATION: |
NOTIMPLEMENTED(); |
break; |