From a85849604239034742c47d5be628122bae825c9e Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Mon, 10 Mar 2014 09:10:21 +0100 Subject: Fix a crash when reparenting widgets on Windows. Introduced by a9edbeddafe5d8866192de44f4028d07bd93013a . Task-number: QTBUG-37346 Task-number: QTBUG-30276 Change-Id: I81e218839db50a88a8b149dd5481bfd0835284da Reviewed-by: Andy Shaw --- src/gui/kernel/qwidget_win.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/gui/kernel/qwidget_win.cpp b/src/gui/kernel/qwidget_win.cpp index 16265e9..1ab76c7 100644 --- a/src/gui/kernel/qwidget_win.cpp +++ b/src/gui/kernel/qwidget_win.cpp @@ -633,10 +633,12 @@ void QWidgetPrivate::setParent_sys(QWidget *parent, Qt::WindowFlags f) } QList registeredDropChildren; if (QWidget *nativeParent = q->internalWinId() ? q : q->nativeParentWidget()) { - foreach (QWidget *w, nativeParent->d_func()->extra->oleDropWidgets) { - if (w && q->isAncestorOf(w)) { - registeredDropChildren.push_back(w); - w->setAttribute(Qt::WA_DropSiteRegistered, false); + if (const QWExtra *extra = nativeParent->d_func()->extra) { + foreach (QWidget *w, extra->oleDropWidgets) { + if (w && q->isAncestorOf(w)) { + registeredDropChildren.push_back(w); + w->setAttribute(Qt::WA_DropSiteRegistered, false); + } } } } -- cgit v0.12