Blame SOURCES/0011-Revert-Fix-for-possible-crash-in-QSGDefaultLayer-gra.patch

03bb49
From ffa77919e72951c7accf84ad09dc669d166aedf8 Mon Sep 17 00:00:00 2001
03bb49
From: Laszlo Agocs <laszlo.agocs@qt.io>
03bb49
Date: Mon, 11 Oct 2021 15:37:33 +0200
03bb49
Subject: [PATCH 11/20] Revert "Fix for possible crash in
03bb49
 QSGDefaultLayer::grab"
03bb49
MIME-Version: 1.0
03bb49
Content-Type: text/plain; charset=UTF-8
03bb49
Content-Transfer-Encoding: 8bit
03bb49
03bb49
This reverts commit 1c5de027d0c31d1d6697bd0557128d92207763d8.
03bb49
03bb49
The fix here is not correct. Calling a QSGRhiLayer function from the gui
03bb49
thread is very wrong and can cause a set of unexpected issues. The
03bb49
Address Sanitizer catches this by recognizing that the render thread is
03bb49
trying to do something with an object destroyed in the meantime on the
03bb49
main thread in the layer->setItem(null) call.
03bb49
03bb49
The issue the original fix is trying to address needs to be addressed in
03bb49
some different form.
03bb49
03bb49
Fixes: QTBUG-94975
03bb49
Pick-to: 6.2 6.1 5.15
03bb49
Change-Id: I46f904026281201fc6d233ed7d3bdc7080934afe
03bb49
Reviewed-by: Christian Strømme <christian.stromme@qt.io>
03bb49
(cherry picked from commit a5f0361622eb08eab6c3474d5fc249d1962e3d1e)
03bb49
---
03bb49
 src/quick/items/qquickshadereffectsource.cpp | 8 --------
03bb49
 src/quick/items/qquickshadereffectsource_p.h | 1 -
03bb49
 2 files changed, 9 deletions(-)
03bb49
03bb49
diff --git a/src/quick/items/qquickshadereffectsource.cpp b/src/quick/items/qquickshadereffectsource.cpp
03bb49
index 4f61d61309..b298ed74da 100644
03bb49
--- a/src/quick/items/qquickshadereffectsource.cpp
03bb49
+++ b/src/quick/items/qquickshadereffectsource.cpp
03bb49
@@ -344,7 +344,6 @@ void QQuickShaderEffectSource::setSourceItem(QQuickItem *item)
03bb49
             d->refFromEffectItem(m_hideSource);
03bb49
             d->addItemChangeListener(this, QQuickItemPrivate::Geometry);
03bb49
             connect(m_sourceItem, SIGNAL(destroyed(QObject*)), this, SLOT(sourceItemDestroyed(QObject*)));
03bb49
-            connect(m_sourceItem, SIGNAL(parentChanged(QQuickItem*)), this, SLOT(sourceItemParentChanged(QQuickItem*)));
03bb49
         } else {
03bb49
             qWarning("ShaderEffectSource: sourceItem and ShaderEffectSource must both be children of the same window.");
03bb49
             m_sourceItem = nullptr;
03bb49
@@ -364,13 +363,6 @@ void QQuickShaderEffectSource::sourceItemDestroyed(QObject *item)
03bb49
 }
03bb49
 
03bb49
 
03bb49
-void QQuickShaderEffectSource::sourceItemParentChanged(QQuickItem *parent)
03bb49
-{
03bb49
-    if (!parent && m_texture)
03bb49
-        m_texture->setItem(0);
03bb49
-}
03bb49
-
03bb49
-
03bb49
 /*!
03bb49
     \qmlproperty rect QtQuick::ShaderEffectSource::sourceRect
03bb49
 
03bb49
diff --git a/src/quick/items/qquickshadereffectsource_p.h b/src/quick/items/qquickshadereffectsource_p.h
03bb49
index 4deb6c70a3..c0a1ccab78 100644
03bb49
--- a/src/quick/items/qquickshadereffectsource_p.h
03bb49
+++ b/src/quick/items/qquickshadereffectsource_p.h
03bb49
@@ -173,7 +173,6 @@ Q_SIGNALS:
03bb49
 private Q_SLOTS:
03bb49
     void sourceItemDestroyed(QObject *item);
03bb49
     void invalidateSceneGraph();
03bb49
-    void sourceItemParentChanged(QQuickItem *parent);
03bb49
 
03bb49
 protected:
03bb49
     void releaseResources() override;
03bb49
-- 
03bb49
2.35.1
03bb49