Fix crash when mixing widgets with QtQuick 1 and Qt Quick 2
Apply the fix from commit 313a74cc4a
also to
the QWidget and the QGraphicsObject destructor.
Task-number: QTCREATORBUG-10273
Change-Id: I47983b49cc4d9b75a2e1ee838e13403bc4b95a59
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
This commit is contained in:
parent
1f8220379c
commit
f18dc91da5
@ -1425,10 +1425,13 @@ QGraphicsItem::~QGraphicsItem()
|
||||
QObjectPrivate *p = QObjectPrivate::get(o);
|
||||
p->wasDeleted = true;
|
||||
if (p->declarativeData) {
|
||||
if (QAbstractDeclarativeData::destroyed)
|
||||
QAbstractDeclarativeData::destroyed(p->declarativeData, o);
|
||||
if (QAbstractDeclarativeData::destroyed_qml1)
|
||||
QAbstractDeclarativeData::destroyed_qml1(p->declarativeData, o);
|
||||
if (static_cast<QAbstractDeclarativeDataImpl*>(p->declarativeData)->ownedByQml1) {
|
||||
if (QAbstractDeclarativeData::destroyed_qml1)
|
||||
QAbstractDeclarativeData::destroyed_qml1(p->declarativeData, o);
|
||||
} else {
|
||||
if (QAbstractDeclarativeData::destroyed)
|
||||
QAbstractDeclarativeData::destroyed(p->declarativeData, o);
|
||||
}
|
||||
p->declarativeData = 0;
|
||||
}
|
||||
}
|
||||
|
@ -1633,10 +1633,13 @@ QWidget::~QWidget()
|
||||
}
|
||||
|
||||
if (d->declarativeData) {
|
||||
if (QAbstractDeclarativeData::destroyed)
|
||||
QAbstractDeclarativeData::destroyed(d->declarativeData, this);
|
||||
if (QAbstractDeclarativeData::destroyed_qml1)
|
||||
QAbstractDeclarativeData::destroyed_qml1(d->declarativeData, this);
|
||||
if (static_cast<QAbstractDeclarativeDataImpl*>(d->declarativeData)->ownedByQml1) {
|
||||
if (QAbstractDeclarativeData::destroyed_qml1)
|
||||
QAbstractDeclarativeData::destroyed_qml1(d->declarativeData, this);
|
||||
} else {
|
||||
if (QAbstractDeclarativeData::destroyed)
|
||||
QAbstractDeclarativeData::destroyed(d->declarativeData, this);
|
||||
}
|
||||
d->declarativeData = 0; // don't activate again in ~QObject
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user