diff options
-rw-r--r-- | src/webengine/api/qquickwebengineview.cpp | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/webengine/api/qquickwebengineview.cpp b/src/webengine/api/qquickwebengineview.cpp index 39901e693..3bc0be196 100644 --- a/src/webengine/api/qquickwebengineview.cpp +++ b/src/webengine/api/qquickwebengineview.cpp @@ -166,6 +166,9 @@ QQuickWebEngineViewPrivate::~QQuickWebEngineViewPrivate() adapter->stopFinding(); if (faviconProvider) faviconProvider->detach(q_ptr); + // q_ptr->d_ptr might be null due to destroy() + if (q_ptr->d_ptr) + bindViewAndWidget(q_ptr, nullptr); } void QQuickWebEngineViewPrivate::initializeProfile() @@ -188,10 +191,11 @@ bool QQuickWebEngineViewPrivate::profileInitialized() const void QQuickWebEngineViewPrivate::destroy() { - // the profile for this web contens is about to be - // garbage collected, delete WebContent first and - // let the QQuickWebEngineView be collected later by gc. - delete q_ptr->d_ptr.take(); + // The profile for this web contents is about to be + // garbage collected, delete WebContents first and + // let the QQuickWebEngineView be collected later by gc. + bindViewAndWidget(q_ptr, nullptr); + delete q_ptr->d_ptr.take(); } UIDelegatesManager *QQuickWebEngineViewPrivate::ui() |