Chromium Code Reviews| Index: device/vr/vr_device_manager.cc |
| diff --git a/device/vr/vr_device_manager.cc b/device/vr/vr_device_manager.cc |
| index 1f08be9c81e5dd884d8d945ed0e37ff3994549a8..cd6d62418f4fd66db191985ab347652d51d93900 100644 |
| --- a/device/vr/vr_device_manager.cc |
| +++ b/device/vr/vr_device_manager.cc |
| @@ -74,17 +74,14 @@ void VRDeviceManager::AddService(VRServiceImpl* service) { |
| } |
| void VRDeviceManager::RemoveService(VRServiceImpl* service) { |
| - services_.erase(std::remove(services_.begin(), services_.end(), service), |
| - services_.end()); |
| - |
| - for (auto device : devices_) { |
| - device.second->RemoveService(service); |
| - } |
| if (service->listening_for_activate()) { |
| ListeningForActivateChanged(false); |
| } |
| + services_.erase(std::remove(services_.begin(), services_.end(), service), |
|
mthiesse
2016/11/29 16:35:13
Perhaps services_ should be a set too? We don't ex
shaobo.yan
2016/11/30 00:32:54
Yes, I think set could be a better solution.
shaobo.yan
2016/11/30 02:54:43
Done.
|
| + services_.end()); |
| + |
| if (services_.empty() && !keep_alive_) { |
| // Delete the device manager when it has no active connections. |
| delete g_vr_device_manager; |
| @@ -110,7 +107,10 @@ bool VRDeviceManager::GetVRDevices(VRServiceImpl* service) { |
| if (devices_.find(device->id()) == devices_.end()) |
| devices_[device->id()] = device; |
| - device->AddService(service); |
| + // Create a VRDisplayImpl for this service/device pair and attach |
| + // the VRDisplayImpl to the device. |
| + VRDisplayImpl* display_impl = service->GetVRDisplayImpl(device); |
| + device->AddDisplay(display_impl); |
| } |
| return true; |