Index: ui/events/devices/x11/device_data_manager_x11.cc |
diff --git a/ui/events/devices/x11/device_data_manager_x11.cc b/ui/events/devices/x11/device_data_manager_x11.cc |
index 230b7fa5328cbecf9e0ee76c31428712ea5489a2..0f62b33f5fbc2bb9988a78872a17bcbfb81d89a4 100644 |
--- a/ui/events/devices/x11/device_data_manager_x11.cc |
+++ b/ui/events/devices/x11/device_data_manager_x11.cc |
@@ -10,6 +10,8 @@ |
#include <utility> |
+#include "base/bind.h" |
+#include "base/bind_helpers.h" |
#include "base/logging.h" |
#include "base/memory/singleton.h" |
#include "base/sys_info.h" |
@@ -130,7 +132,11 @@ void DeviceDataManagerX11::CreateInstance() { |
if (instance()) |
return; |
- new DeviceDataManagerX11(); |
+ DeviceDataManagerX11* device_data_manager = new DeviceDataManagerX11(); |
+ base::AtExitManager::RegisterTask( |
+ base::Bind(&base::DeletePointer<DeviceDataManager>, device_data_manager)); |
sadrul
2015/06/27 07:09:05
Can we avoid setting a callback here, and explicit
|
+ |
+ set_instance(device_data_manager); |
} |
// static |