summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKirill Burtsev <kirill.burtsev@qt.io>2021-10-05 10:21:40 +0200
committerKirill Burtsev <kirill.burtsev@qt.io>2021-10-14 08:57:48 +0200
commit603ad5cc9806321a5a5e12ea84c58010d7930447 (patch)
tree84b493dea8e14fbe979c2e054d86d097cd636c48
parent9e63ed6757cebf644370469b5c9b0215c27c5744 (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.cpp2
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)