diff options
author | Allan Sandfeld Jensen <allan.jensen@digia.com> | 2014-07-22 08:56:11 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@digia.com> | 2014-07-22 16:14:52 +0200 |
commit | 5c93e44bc2a59ff374fab442cdee1ca65c984f18 (patch) | |
tree | c0e3a7231d7b5760979f9db5d706e9c10d0c0409 | |
parent | 4a39158368f6184c8d56e1d65866ba99f83297e0 (diff) | |
download | qtwebkit-5c93e44bc2a59ff374fab442cdee1ca65c984f18.tar.gz |
Avoid crash when hidePopup is called multiple times
If hidePopup is called twice it may cause access to a deleted version of itself
Task-number: QTBUG-38998
Change-Id: Iee967eb51c403420779ea502610b58383d07963f
Reviewed-by: Michael Bruning <michael.bruning@digia.com>
-rw-r--r-- | Source/WebKit/qt/WidgetSupport/QtWebComboBox.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/Source/WebKit/qt/WidgetSupport/QtWebComboBox.cpp b/Source/WebKit/qt/WidgetSupport/QtWebComboBox.cpp index 4cfa366dc..b47af40e0 100644 --- a/Source/WebKit/qt/WidgetSupport/QtWebComboBox.cpp +++ b/Source/WebKit/qt/WidgetSupport/QtWebComboBox.cpp @@ -55,12 +55,16 @@ bool QtWebComboBox::eventFilter(QObject* watched, QEvent* event) void QtWebComboBox::hidePopup() { + if (m_hiding) + return; m_hiding = true; // QComboBox::hidePopup() runs an eventloop, we need to make sure we do not delete ourselves in that loop. QComboBox::hidePopup(); m_hiding = false; - if (m_deleteAfterHiding) + if (m_deleteAfterHiding) { deleteLater(); + m_deleteAfterHiding = false; + } } |