Chromium Code Reviews| Index: ui/events/devices/device_data_manager.cc |
| diff --git a/ui/events/devices/device_data_manager.cc b/ui/events/devices/device_data_manager.cc |
| index 44ca1fa7beccc0cef3c4beb8c83f7e5b9802aeb4..97c746188dfdaaf1c181019b01626d7cc4cff6c5 100644 |
| --- a/ui/events/devices/device_data_manager.cc |
| +++ b/ui/events/devices/device_data_manager.cc |
| @@ -25,29 +25,35 @@ bool InputDeviceEquals(const ui::InputDevice& a, const ui::InputDevice& b) { |
| DeviceDataManager* DeviceDataManager::instance_ = NULL; |
| DeviceDataManager::DeviceDataManager() { |
| - CHECK(!instance_) << "Can not create multiple instances of DeviceDataManager"; |
| - instance_ = this; |
| - |
| - base::AtExitManager::RegisterTask( |
| - base::Bind(&base::DeletePointer<DeviceDataManager>, this)); |
| - |
| ClearTouchDeviceAssociations(); |
| } |
| DeviceDataManager::~DeviceDataManager() { |
| - CHECK_EQ(this, instance_); |
| - instance_ = NULL; |
| } |
| // static |
| DeviceDataManager* DeviceDataManager::instance() { return instance_; } |
| +void DeviceDataManager::set_instance(DeviceDataManager* instance) { |
| + instance_ = instance; |
| +} |
| + |
| // static |
| void DeviceDataManager::CreateInstance() { |
| if (instance()) |
| return; |
| - new DeviceDataManager(); |
| + CHECK(!instance_) << "Can not create multiple instances of DeviceDataManager"; |
|
sadrul
2015/06/24 19:50:13
This check should be in set_instance above, right?
bruthig
2015/06/24 21:52:59
Done.
|
| + instance_ = new DeviceDataManager(); |
| + |
| + base::AtExitManager::RegisterTask(base::Bind(DeleteInstance)); |
| +} |
| + |
| +void DeviceDataManager::DeleteInstance() { |
| + if (instance_) { |
| + delete instance_; |
| + instance_ = NULL; |
| + } |
| } |
| // static |