commit:     3934f6e6505c4216129dff9c96b68a97b006d62e
Author:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
AuthorDate: Wed Jan 14 01:39:41 2026 +0000
Commit:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
CommitDate: Wed Jan 14 02:32:26 2026 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3934f6e6

dev-qt/qtdeclarative: backport fix for QTBUG-142514

Fix seems rather trivial so risking straight-to-stable to avoid
churn and deliver the crash fix to stable users earlier.

Note fix is not in the 6.10 branch yet wrt 6.10.9999 but the
backport should happen soon. Odds are that it will not be added
to the 6.10.2 branch so the patch will be needed until 6.10.3.

Signed-off-by: Ionen Wolkens <ionen <AT> gentoo.org>

 .../files/qtdeclarative-6.10.1-QTBUG-142514.patch    | 20 ++++++++++++++++++++
 ...10.1-r1.ebuild => qtdeclarative-6.10.1-r2.ebuild} |  3 ++-
 2 files changed, 22 insertions(+), 1 deletion(-)

diff --git a/dev-qt/qtdeclarative/files/qtdeclarative-6.10.1-QTBUG-142514.patch 
b/dev-qt/qtdeclarative/files/qtdeclarative-6.10.1-QTBUG-142514.patch
new file mode 100644
index 000000000000..088c6418f053
--- /dev/null
+++ b/dev-qt/qtdeclarative/files/qtdeclarative-6.10.1-QTBUG-142514.patch
@@ -0,0 +1,20 @@
+Recommended backport by upstream kde/plasma to fix plasmashell crashes.
+
+https://bugs.kde.org/show_bug.cgi?id=513527
+https://mail.kde.org/pipermail/distributions/2026-January/001667.html
+https://qt-project.atlassian.net/browse/QTBUG-142514
+https://codereview.qt-project.org/c/qt/qtdeclarative/+/704031
+--- a/src/qml/jsruntime/qv4qobjectwrapper.cpp
++++ b/src/qml/jsruntime/qv4qobjectwrapper.cpp
+@@ -1580,8 +1580,7 @@
+             } else {
+                 // If the object is C++-owned, we still have to release the 
weak reference we have
+-                // to it.
+-                ddata->jsWrapper.clear();
+-                if (lastCall && ddata->propertyCache)
+-                    ddata->propertyCache.reset();
++                // to it. If the "main" wrapper is not ours, we should leave 
it alone, though.
++                if (ddata->jsWrapper.as<QObjectWrapper>() == this)
++                    ddata->jsWrapper.clear();
+             }
+         }

diff --git a/dev-qt/qtdeclarative/qtdeclarative-6.10.1-r1.ebuild 
b/dev-qt/qtdeclarative/qtdeclarative-6.10.1-r2.ebuild
similarity index 95%
rename from dev-qt/qtdeclarative/qtdeclarative-6.10.1-r1.ebuild
rename to dev-qt/qtdeclarative/qtdeclarative-6.10.1-r2.ebuild
index 64f02eaea6a0..99a5c039b8c1 100644
--- a/dev-qt/qtdeclarative/qtdeclarative-6.10.1-r1.ebuild
+++ b/dev-qt/qtdeclarative/qtdeclarative-6.10.1-r2.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2021-2025 Gentoo Authors
+# Copyright 2021-2026 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=8
@@ -34,6 +34,7 @@ BDEPEND="
 
 PATCHES=(
        "${FILESDIR}"/${PN}-6.10.1-QTBUG-142331.patch
+       "${FILESDIR}"/${PN}-6.10.1-QTBUG-142514.patch
 )
 
 src_configure() {

Reply via email to