diff options
author | Kirill Burtsev <kirill.burtsev@qt.io> | 2021-10-05 10:21:40 +0200 |
---|---|---|
committer | Kirill Burtsev <kirill.burtsev@qt.io> | 2021-10-14 08:57:48 +0200 |
commit | 603ad5cc9806321a5a5e12ea84c58010d7930447 (patch) | |
tree | 84b493dea8e14fbe979c2e054d86d097cd636c48 | |
parent | 9e63ed6757cebf644370469b5c9b0215c27c5744 (diff) |
Fix leak on getDefaultScreeenId
XRRMonitorInfo struct is supposed to be cleaned-up after getMonitors
with a separate call to freeMonitors.
Change-Id: Iacc296d1f5e434a1d52798fe09d57833660b7952
(cherry picked from commit b868f2893b3ba2fb02d9c7212de7e01b3f9e498a)
Reviewed-by: Michal Klocek <michal.klocek@qt.io>
-rw-r--r-- | src/core/media_capture_devices_dispatcher.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/core/media_capture_devices_dispatcher.cpp b/src/core/media_capture_devices_dispatcher.cpp index ef5d65745..9f8b3436a 100644 --- a/src/core/media_capture_devices_dispatcher.cpp +++ b/src/core/media_capture_devices_dispatcher.cpp @@ -70,6 +70,7 @@ #endif #include <QtCore/qcoreapplication.h> +#include <QtCore/qscopeguard.h> #if defined(WEBRTC_USE_X11) #include <dlfcn.h> @@ -197,6 +198,7 @@ content::DesktopMediaID getDefaultScreenId() int numMonitors = 0; XRRMonitorInfo *monitors = getMonitors(display, rootWindow, true, &numMonitors); + auto cleanup = qScopeGuard([&] () { freeMonitors(monitors); }); if (numMonitors > 0) return content::DesktopMediaID(content::DesktopMediaID::TYPE_SCREEN, monitors[0].name); #endif // !defined(WEBRTC_USE_X11) |