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.
This commit is contained in:
Léo Lam
2016-06-25 21:46:39 +02:00
parent afa202738e
commit 8678133e87
18 changed files with 80 additions and 60 deletions

View File

@ -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<KeyboardMouse>(
(Window)hwnd, xi_opcode, current_master->deviceid, current_master->attachment));
}
}
XCloseDisplay(dpy);