diff options
author | Allan Sandfeld Jensen <allan.jensen@theqtcompany.com> | 2015-09-29 15:41:46 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@theqtcompany.com> | 2015-09-30 10:38:41 +0000 |
commit | 2a972c4046bbee49ec9c770f2c1e12fb95500240 (patch) | |
tree | 6231b8ec2257f7cacde2386d7540562f9877e306 /src/webenginewidgets/api/qwebengineprofile.cpp | |
parent | 6a45d22a1f93b8ae6e1ce3fb000f620fa1907e7b (diff) |
Fix assert on deleting installed custom URL scheme handler
When the QObject::destroyed signal is emitted the inherited class parts
have already been destroyed and thus it is no longer a
QWebEngineUrlSchemeHandler and qobject_cast will return 0, which is
asserted against.
Change-Id: I7130c60a26088067930499a30e0081ed297a92d9
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
Diffstat (limited to 'src/webenginewidgets/api/qwebengineprofile.cpp')
-rw-r--r-- | src/webenginewidgets/api/qwebengineprofile.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/webenginewidgets/api/qwebengineprofile.cpp b/src/webenginewidgets/api/qwebengineprofile.cpp index 323659827..66cba9bc3 100644 --- a/src/webenginewidgets/api/qwebengineprofile.cpp +++ b/src/webenginewidgets/api/qwebengineprofile.cpp @@ -582,7 +582,7 @@ void QWebEngineProfile::installUrlSchemeHandler(QWebEngineUrlSchemeHandler *hand d->m_urlSchemeHandlers.insert(scheme, handler); d->browserContext()->customUrlSchemeHandlers().append(handler->d_func()); d->browserContext()->updateCustomUrlSchemeHandlers(); - connect(handler, SIGNAL(destroyed(QObject*)), this, SLOT(destroyedUrlSchemeHandler(QObject*))); + connect(handler, SIGNAL(destroyed(QWebEngineUrlSchemeHandler*)), this, SLOT(destroyedUrlSchemeHandler(QWebEngineUrlSchemeHandler*))); } /*! @@ -599,7 +599,7 @@ void QWebEngineProfile::removeUrlSchemeHandler(QWebEngineUrlSchemeHandler *handl int count = d->m_urlSchemeHandlers.remove(handler->scheme()); if (!count) return; - disconnect(handler, SIGNAL(destroyed(QObject*)), this, SLOT(destroyedUrlSchemeHandler(QObject*))); + disconnect(handler, SIGNAL(destroyed(QWebEngineUrlSchemeHandler*)), this, SLOT(destroyedUrlSchemeHandler(QWebEngineUrlSchemeHandler*))); d->browserContext()->removeCustomUrlSchemeHandler(handler->d_func()); d->browserContext()->updateCustomUrlSchemeHandlers(); } @@ -617,9 +617,9 @@ void QWebEngineProfile::clearUrlSchemeHandlers() d->browserContext()->updateCustomUrlSchemeHandlers(); } -void QWebEngineProfile::destroyedUrlSchemeHandler(QObject *obj) +void QWebEngineProfile::destroyedUrlSchemeHandler(QWebEngineUrlSchemeHandler *obj) { - removeUrlSchemeHandler(qobject_cast<QWebEngineUrlSchemeHandler*>(obj)); + removeUrlSchemeHandler(obj); } QT_END_NAMESPACE |