summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Moe Gustavsen <richard.gustavsen@nokia.com>2010-01-29 09:49:14 (GMT)
committerRichard Moe Gustavsen <richard.gustavsen@nokia.com>2010-01-29 09:52:35 (GMT)
commitf842ec12706b70f94ab5f634dc2aa025ba2cf3f2 (patch)
tree49b70c66a8d5deb952e69238d3ae1790bbd4c2a2
parentc2e53adcb015e142436127f989b0f219df7ade36 (diff)
downloadQt-f842ec12706b70f94ab5f634dc2aa025ba2cf3f2.zip
Qt-f842ec12706b70f94ab5f634dc2aa025ba2cf3f2.tar.gz
Qt-f842ec12706b70f94ab5f634dc2aa025ba2cf3f2.tar.bz2
Carbon: crash problem in QWidgetPrivate::hide_sys
The crash occurs because we at one point try to assign a widget that is marked as 'about to be deleted' to a QPointer, after clearguards has been called. The correct fix is to avoid such an assignment in the first place. Task-number: QTBUG-4227 Reviewed-by: Prasanth
-rw-r--r--src/gui/kernel/qwidget_mac.mm2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/gui/kernel/qwidget_mac.mm b/src/gui/kernel/qwidget_mac.mm
index 5b5ab40..b942bdd 100644
--- a/src/gui/kernel/qwidget_mac.mm
+++ b/src/gui/kernel/qwidget_mac.mm
@@ -3579,6 +3579,8 @@ void QWidgetPrivate::hide_sys()
if (!QWidget::mouseGrabber()){
QWidget *enterWidget = QApplication::widgetAt(QCursor::pos());
+ if (enterWidget->data->in_destructor)
+ enterWidget = 0;
QApplicationPrivate::dispatchEnterLeave(enterWidget, qt_mouseover);
qt_mouseover = enterWidget;
}