| Index: device/generic_sensor/platform_sensor_provider_base.cc
|
| diff --git a/device/generic_sensor/platform_sensor_provider_base.cc b/device/generic_sensor/platform_sensor_provider_base.cc
|
| index c3f30ceb648966f50954ee5717d6e42ac4686551..f8bb907f0f27f013da38c99a13a329bf7ad0af20 100644
|
| --- a/device/generic_sensor/platform_sensor_provider_base.cc
|
| +++ b/device/generic_sensor/platform_sensor_provider_base.cc
|
| @@ -32,8 +32,7 @@ void PlatformSensorProviderBase::CreateSensor(
|
| return;
|
| }
|
|
|
| - mojo::ScopedSharedBufferMapping mapping = shared_buffer_handle_->MapAtOffset(
|
| - kReadingBufferSize, SensorReadingSharedBuffer::GetOffset(type));
|
| + mojo::ScopedSharedBufferMapping mapping = MapSharedBufferForType(type);
|
| if (!mapping) {
|
| callback.Run(nullptr);
|
| return;
|
| @@ -43,8 +42,6 @@ void PlatformSensorProviderBase::CreateSensor(
|
| if (it != requests_map_.end()) {
|
| it->second.push_back(callback);
|
| } else { // This is the first CreateSensor call.
|
| - memset(mapping.get(), 0, kReadingBufferSize);
|
| -
|
| requests_map_[type] = CallbackQueue({callback});
|
|
|
| CreateSensorInternal(
|
| @@ -117,4 +114,20 @@ void PlatformSensorProviderBase::NotifySensorCreated(
|
| requests_map_.erase(type);
|
| }
|
|
|
| +std::vector<mojom::SensorType>
|
| +PlatformSensorProviderBase::GetPendingRequestTypes() {
|
| + std::vector<mojom::SensorType> request_types;
|
| + for (auto const& entry : requests_map_)
|
| + request_types.push_back(entry.first);
|
| + return request_types;
|
| +}
|
| +
|
| +mojo::ScopedSharedBufferMapping
|
| +PlatformSensorProviderBase::MapSharedBufferForType(mojom::SensorType type) {
|
| + mojo::ScopedSharedBufferMapping mapping = shared_buffer_handle_->MapAtOffset(
|
| + kReadingBufferSize, SensorReadingSharedBuffer::GetOffset(type));
|
| + memset(mapping.get(), 0, kReadingBufferSize);
|
| + return mapping;
|
| +}
|
| +
|
| } // namespace device
|
|
|