summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@digia.com>2014-07-22 08:56:11 +0200
committerAllan Sandfeld Jensen <allan.jensen@digia.com>2014-07-22 16:14:52 +0200
commit5c93e44bc2a59ff374fab442cdee1ca65c984f18 (patch)
treec0e3a7231d7b5760979f9db5d706e9c10d0c0409
parent4a39158368f6184c8d56e1d65866ba99f83297e0 (diff)
downloadqtwebkit-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.cpp6
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;
+ }
}