From a560018d08d4212bc65c163eb608639f19b38df2 Mon Sep 17 00:00:00 2001 From: Oleg Shparber Date: Tue, 17 Jun 2014 15:47:43 -0700 Subject: Fix crash in QObjectWrapper This can happen during QObject destruction, when QObjectPrivate::deleteChildren() itself sets entries in the children list to zero when deleting. These zeros cause crash in markChildQObjectsRecursively(). Task-number: QTBUG-38635 Change-Id: I29ad9e793b78ca4e8d73fbb125f46db1b8292f20 Reviewed-by: Alan Alpert --- src/qml/jsruntime/qv4qobjectwrapper.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/qml/jsruntime/qv4qobjectwrapper.cpp b/src/qml/jsruntime/qv4qobjectwrapper.cpp index a02424a3dc..d64f821a38 100644 --- a/src/qml/jsruntime/qv4qobjectwrapper.cpp +++ b/src/qml/jsruntime/qv4qobjectwrapper.cpp @@ -962,6 +962,8 @@ static void markChildQObjectsRecursively(QObject *parent, QV4::ExecutionEngine * const QObjectList &children = parent->children(); for (int i = 0; i < children.count(); ++i) { QObject *child = children.at(i); + if (!child) + continue; QQmlData *ddata = QQmlData::get(child, /*create*/false); if (ddata) ddata->jsWrapper.markOnce(e); -- cgit v1.2.3