From 8678133e8746fdc20f7d012005ebf2db370ddccc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9o=20Lam?= Date: Sat, 25 Jun 2016 21:46:39 +0200 Subject: ControllerInterface: Switch to std::shared_ptr Small cleanup by using std::shared_ptr and getting rid of ciface.Devices() which just returned the m_devices (which defeats the point of making m_devices protected). Incidentally, this should make the code safer when we have different threads accessing devices in the future (for hotplug?). A lot of code use Device references directly so there is no easy way to remove FindDevice() and make those unique_ptrs. --- Source/Core/InputCommon/ControllerInterface/Xlib/XInput2.cpp | 4 +++- Source/Core/InputCommon/ControllerInterface/Xlib/Xlib.cpp | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) (limited to 'Source/Core/InputCommon/ControllerInterface/Xlib') diff --git a/Source/Core/InputCommon/ControllerInterface/Xlib/XInput2.cpp b/Source/Core/InputCommon/ControllerInterface/Xlib/XInput2.cpp index d46f1cf4f6..c7c2e74242 100644 --- a/Source/Core/InputCommon/ControllerInterface/Xlib/XInput2.cpp +++ b/Source/Core/InputCommon/ControllerInterface/Xlib/XInput2.cpp @@ -76,10 +76,12 @@ void Init(void* const hwnd) { current_master = &all_masters[i]; if (current_master->use == XIMasterPointer) + { // Since current_master is a master pointer, its attachment must // be a master keyboard. - g_controller_interface.AddDevice(new KeyboardMouse( + g_controller_interface.AddDevice(std::make_shared( (Window)hwnd, xi_opcode, current_master->deviceid, current_master->attachment)); + } } XCloseDisplay(dpy); diff --git a/Source/Core/InputCommon/ControllerInterface/Xlib/Xlib.cpp b/Source/Core/InputCommon/ControllerInterface/Xlib/Xlib.cpp index a7d94bbcd0..fd5cda04ec 100644 --- a/Source/Core/InputCommon/ControllerInterface/Xlib/Xlib.cpp +++ b/Source/Core/InputCommon/ControllerInterface/Xlib/Xlib.cpp @@ -13,7 +13,7 @@ namespace Xlib { void Init(void* const hwnd) { - g_controller_interface.AddDevice(new KeyboardMouse((Window)hwnd)); + g_controller_interface.AddDevice(std::make_shared((Window)hwnd)); } KeyboardMouse::KeyboardMouse(Window window) : m_window(window) -- cgit v1.2.3