xcb: Fix segmentation fault on destruction of QXcbConnection

The same screen was detected twice.

Fixes: QTBUG-104319
Change-Id: Id1f93d68de0306604f2e6a9104962a1d3b0db366
Reviewed-by: Liang Qi <liang.qi@qt.io>
Reviewed-by: Jonas Kvinge <jonas@jkvinge.net>
(cherry picked from commit e39ca06dbc3051c8e82c458ccd7314a2adbff27e)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
Rob De Reycke 2022-10-27 00:37:20 +02:00 committed by Qt Cherry-pick Bot
parent 1ddfee7ae8
commit acee56691f

View File

@ -517,7 +517,8 @@ void QXcbConnection::initializeScreensFromMonitor(xcb_screen_iterator_t *it, int
old.removeAll(screen); old.removeAll(screen);
} }
} }
m_screens << screen; if (!m_screens.contains(screen))
m_screens << screen;
siblings << screen; siblings << screen;
// similar logic with QXcbConnection::initializeScreensFromOutput() // similar logic with QXcbConnection::initializeScreensFromOutput()