mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-06-11 16:49:28 +02:00
DolphinQt/InputCommon: Fix a few memory leaks.
This commit is contained in:
@ -16,6 +16,7 @@
|
||||
#include "Common/Flag.h"
|
||||
#include "Common/Logging/Log.h"
|
||||
#include "Common/MathUtil.h"
|
||||
#include "Common/ScopeGuard.h"
|
||||
#include "Common/StringUtil.h"
|
||||
#include "Common/Thread.h"
|
||||
#include "InputCommon/ControllerInterface/ControllerInterface.h"
|
||||
@ -40,10 +41,14 @@ static void HotplugThreadFunc()
|
||||
NOTICE_LOG(SERIALINTERFACE, "evdev hotplug thread started");
|
||||
|
||||
udev* const udev = udev_new();
|
||||
Common::ScopeGuard udev_guard([udev] { udev_unref(udev); });
|
||||
|
||||
ASSERT_MSG(PAD, udev != nullptr, "Couldn't initialize libudev.");
|
||||
|
||||
// Set up monitoring
|
||||
udev_monitor* const monitor = udev_monitor_new_from_netlink(udev, "udev");
|
||||
Common::ScopeGuard monitor_guard([monitor] { udev_monitor_unref(monitor); });
|
||||
|
||||
udev_monitor_filter_add_match_subsystem_devtype(monitor, "input", nullptr);
|
||||
udev_monitor_enable_receiving(monitor);
|
||||
const int monitor_fd = udev_monitor_get_fd(monitor);
|
||||
@ -61,11 +66,11 @@ static void HotplugThreadFunc()
|
||||
if (ret < 1 || !FD_ISSET(monitor_fd, &fds))
|
||||
continue;
|
||||
|
||||
std::unique_ptr<udev_device, decltype(&udev_device_unref)> dev{
|
||||
udev_monitor_receive_device(monitor), udev_device_unref};
|
||||
udev_device* const dev = udev_monitor_receive_device(monitor);
|
||||
Common::ScopeGuard dev_guard([dev] { udev_device_unref(dev); });
|
||||
|
||||
const char* const action = udev_device_get_action(dev.get());
|
||||
const char* const devnode = udev_device_get_devnode(dev.get());
|
||||
const char* const action = udev_device_get_action(dev);
|
||||
const char* const devnode = udev_device_get_devnode(dev);
|
||||
if (!devnode)
|
||||
continue;
|
||||
|
||||
|
Reference in New Issue
Block a user