aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@theqtcompany.com>2015-03-31 15:45:45 +0200
committerLiang Qi <liang.qi@theqtcompany.com>2015-03-31 15:45:46 +0200
commit92dcf9e69e5ed42471d4e02eb165bc80f550129e (patch)
treefcb56709e15991d40de4ef695ac27831cb062a38 /src/quick
parent03fa9780fa1ac8bab10f99a59dd3fc2f8f878222 (diff)
parent22b7fd1c0b93f12585858ac5baabba32408749fd (diff)
Merge remote-tracking branch 'origin/5.4' into 5.5
Diffstat (limited to 'src/quick')
-rw-r--r--src/quick/scenegraph/qsgrenderloop.cpp7
-rw-r--r--src/quick/scenegraph/qsgwindowsrenderloop.cpp1
-rw-r--r--src/quick/util/qquickpixmapcache.cpp8
3 files changed, 6 insertions, 10 deletions
diff --git a/src/quick/scenegraph/qsgrenderloop.cpp b/src/quick/scenegraph/qsgrenderloop.cpp
index 61de81576c..ce3bf7d61d 100644
--- a/src/quick/scenegraph/qsgrenderloop.cpp
+++ b/src/quick/scenegraph/qsgrenderloop.cpp
@@ -91,12 +91,8 @@ void QSGRenderLoop::cleanup()
foreach (QQuickWindow *w, s_instance->windows()) {
QQuickWindowPrivate *wd = QQuickWindowPrivate::get(w);
if (wd->windowManager == s_instance) {
- // windowDestroyed() triggers a sendPostedEvent(DeferredDelete),
- // so wd will be null if the window was deleteLater()'ed
- bool wasDeleted = wd->wasDeleted;
s_instance->windowDestroyed(w);
- if (!wasDeleted)
- wd->windowManager = 0;
+ wd->windowManager = 0;
}
}
delete s_instance;
@@ -300,7 +296,6 @@ void QSGGuiThreadRenderLoop::windowDestroyed(QQuickWindow *window)
d->cleanupNodesOnShutdown();
if (m_windows.size() == 0) {
rc->invalidate();
- QCoreApplication::sendPostedEvents(0, QEvent::DeferredDelete);
delete gl;
gl = 0;
} else if (gl && window == gl->surface() && current) {
diff --git a/src/quick/scenegraph/qsgwindowsrenderloop.cpp b/src/quick/scenegraph/qsgwindowsrenderloop.cpp
index e4db348ef0..b88d21ce66 100644
--- a/src/quick/scenegraph/qsgwindowsrenderloop.cpp
+++ b/src/quick/scenegraph/qsgwindowsrenderloop.cpp
@@ -234,7 +234,6 @@ void QSGWindowsRenderLoop::windowDestroyed(QQuickWindow *window)
d->cleanupNodesOnShutdown();
if (m_windows.size() == 0) {
d->context->invalidate();
- QCoreApplication::sendPostedEvents(0, QEvent::DeferredDelete);
delete m_gl;
m_gl = 0;
} else if (m_gl && current) {
diff --git a/src/quick/util/qquickpixmapcache.cpp b/src/quick/util/qquickpixmapcache.cpp
index 2066d1e405..5199808251 100644
--- a/src/quick/util/qquickpixmapcache.cpp
+++ b/src/quick/util/qquickpixmapcache.cpp
@@ -526,10 +526,12 @@ void QQuickPixmapReader::processJobs()
for (int i = 0; i < cancelled.count(); ++i) {
QQuickPixmapReply *job = cancelled.at(i);
QNetworkReply *reply = replies.key(job, 0);
- if (reply && reply->isRunning()) {
- // cancel any jobs already started
+ if (reply) {
replies.remove(reply);
- reply->close();
+ if (reply->isRunning()) {
+ // cancel any jobs already started
+ reply->close();
+ }
}
PIXMAP_PROFILE(pixmapStateChanged<QQuickProfiler::PixmapLoadingError>(job->url));
// deleteLater, since not owned by this thread