QEvdev: Replace manual memory management with unique_ptr
Make create() return, and m_mice/m_keyboards/etc store, handlers by unique_ptr.
In most cases, we can't use qt_make_unique(), since the ctor we're calling is
marked as private.
Since QHash can't hold move-only types, use a std::vector<{QString, unique_ptr}>
instead. As this pattern repeats in all four QEvdev*Manager classes, create a
small class template.
Saves almost 6KiB on optimized Linux AMD64 GCC 9.1 builds across all .so's that
link to QtInputSupport.a.
Change-Id: I8f62b6b629d6e1855314c0a4fb4fc069db9ae0ce
Reviewed-by:
Allan Sandfeld Jensen <allan.jensen@qt.io>
Showing
- src/platformsupport/input/evdevkeyboard/qevdevkeyboardhandler.cpp 3 additions, 3 deletions...formsupport/input/evdevkeyboard/qevdevkeyboardhandler.cpp
- src/platformsupport/input/evdevkeyboard/qevdevkeyboardhandler_p.h 3 additions, 1 deletion...formsupport/input/evdevkeyboard/qevdevkeyboardhandler_p.h
- src/platformsupport/input/evdevkeyboard/qevdevkeyboardmanager.cpp 10 additions, 16 deletions...formsupport/input/evdevkeyboard/qevdevkeyboardmanager.cpp
- src/platformsupport/input/evdevkeyboard/qevdevkeyboardmanager_p.h 2 additions, 1 deletion...formsupport/input/evdevkeyboard/qevdevkeyboardmanager_p.h
- src/platformsupport/input/evdevmouse/qevdevmousehandler.cpp 3 additions, 3 deletionssrc/platformsupport/input/evdevmouse/qevdevmousehandler.cpp
- src/platformsupport/input/evdevmouse/qevdevmousehandler_p.h 3 additions, 1 deletionsrc/platformsupport/input/evdevmouse/qevdevmousehandler_p.h
- src/platformsupport/input/evdevmouse/qevdevmousemanager.cpp 5 additions, 10 deletionssrc/platformsupport/input/evdevmouse/qevdevmousemanager.cpp
- src/platformsupport/input/evdevmouse/qevdevmousemanager_p.h 3 additions, 1 deletionsrc/platformsupport/input/evdevmouse/qevdevmousemanager_p.h
- src/platformsupport/input/evdevtablet/qevdevtabletmanager.cpp 4 additions, 8 deletions...platformsupport/input/evdevtablet/qevdevtabletmanager.cpp
- src/platformsupport/input/evdevtablet/qevdevtabletmanager_p.h 3 additions, 1 deletion...platformsupport/input/evdevtablet/qevdevtabletmanager_p.h
- src/platformsupport/input/evdevtouch/qevdevtouchmanager.cpp 7 additions, 12 deletionssrc/platformsupport/input/evdevtouch/qevdevtouchmanager.cpp
- src/platformsupport/input/evdevtouch/qevdevtouchmanager_p.h 3 additions, 1 deletionsrc/platformsupport/input/evdevtouch/qevdevtouchmanager_p.h
- src/platformsupport/input/shared/devicehandlerlist_p.h 95 additions, 0 deletionssrc/platformsupport/input/shared/devicehandlerlist_p.h
- src/platformsupport/input/shared/shared.pri 1 addition, 0 deletionssrc/platformsupport/input/shared/shared.pri
Please register or sign in to comment