[neon/qt6/qt6-declarative/Neon/release] debian/patches: drop upstreamed patch

Carlos De Maine null at kde.org
Wed May 20 08:36:54 BST 2026


Git commit 8b02de985e606f17f54f3b36953ba3b0cb473fb8 by Carlos De Maine.
Committed on 20/05/2026 at 07:36.
Pushed by carlosdem into branch 'Neon/release'.

drop upstreamed patch

D  +0    -133  debian/patches/dc2358e.diff
D  +0    -1    debian/patches/series

https://invent.kde.org/neon/qt6/qt6-declarative/-/commit/8b02de985e606f17f54f3b36953ba3b0cb473fb8

diff --git a/debian/patches/dc2358e.diff b/debian/patches/dc2358e.diff
deleted file mode 100644
index 9ce08be..0000000
--- a/debian/patches/dc2358e.diff
+++ /dev/null
@@ -1,133 +0,0 @@
-From dc2358e98b8ddab532866a403ffc09d1162ad0f9 Mon Sep 17 00:00:00 2001
-From: Ulf Hermann <ulf.hermann at qt.io>
-Date: Tue, 13 Jan 2026 11:53:27 +0100
-Subject: [PATCH] QtQml: Do not clear objects' propertyCaches on last GC run
-
-The property caches are not specific to the engine. The same object may
-be exposed to other engines and still require its property cache. When
-the clearing of the property caches on engine destruction was
-introduced, the property caches were still engine-specific and we had no
-choice but to clear them. Otherwise any further access would lead to a
-dereference of a dangling pointer.
-
-Furthermore, when clearing the JS wrapper for a QObject, check if it's
-actually the wrapper being deleted. We don't want to clear some other
-engine's wrapper.
-
-Amends commit 749a7212e903d8e8c6f256edb1836b9449cc7fe1.
-Amends commit c6b2dd879d02b21b18f80faab541f8f04286685a.
-
-Pick-to: 6.11 6.10
-Fixes: QTBUG-142514
-Change-Id: I40bb1aeca65225d56cb1d2ff498f5f1722216a70
-Reviewed-by: Fabian Kosmale <fabian.kosmale at qt.io>
----
-
-diff --git a/src/qml/jsruntime/qv4qobjectwrapper.cpp b/src/qml/jsruntime/qv4qobjectwrapper.cpp
-index a8dfd50..e61867b 100644
---- a/src/qml/jsruntime/qv4qobjectwrapper.cpp
-+++ b/src/qml/jsruntime/qv4qobjectwrapper.cpp
-@@ -1583,10 +1583,9 @@
-                     o->deleteLater();
-             } 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/tests/auto/qml/qjsengine/tst_qjsengine.cpp b/tests/auto/qml/qjsengine/tst_qjsengine.cpp
-index b56b241..11bc62e 100644
---- a/tests/auto/qml/qjsengine/tst_qjsengine.cpp
-+++ b/tests/auto/qml/qjsengine/tst_qjsengine.cpp
-@@ -1119,7 +1119,7 @@
-         engine.newQObject(obj.data());
-         QVERIFY(QQmlData::get(obj.data())->propertyCache);
-     }
--    QVERIFY(!QQmlData::get(obj.data())->propertyCache);
-+    QVERIFY(QQmlData::get(obj.data())->propertyCache);
- }
- 
- void tst_QJSEngine::newQMetaObject() {
-diff --git a/tests/auto/qml/qmlcppcodegen/data/CMakeLists.txt b/tests/auto/qml/qmlcppcodegen/data/CMakeLists.txt
-index 88cc102..8949d00 100644
---- a/tests/auto/qml/qmlcppcodegen/data/CMakeLists.txt
-+++ b/tests/auto/qml/qmlcppcodegen/data/CMakeLists.txt
-@@ -326,6 +326,7 @@
-     stringLength.qml
-     stringToByteArray.qml
-     structuredValueType.qml
-+    multiEnginePropertyCache.qml
-     takenumber.qml
-     testlogger.js
-     text.qml
-diff --git a/tests/auto/qml/qmlcppcodegen/data/multiEnginePropertyCache.qml b/tests/auto/qml/qmlcppcodegen/data/multiEnginePropertyCache.qml
-new file mode 100644
-index 0000000..222b2f8
---- /dev/null
-+++ b/tests/auto/qml/qmlcppcodegen/data/multiEnginePropertyCache.qml
-@@ -0,0 +1,20 @@
-+pragma Strict
-+import QtQml
-+
-+QtObject {
-+    id: root
-+
-+    property int foo: 0
-+    onFooChanged: root.close1()
-+
-+    property int bar: 0
-+    onBarChanged: close2()
-+
-+    function close1() {
-+        console.log("close1")
-+    }
-+
-+    function close2() {
-+        console.log("close2")
-+    }
-+}
-diff --git a/tests/auto/qml/qmlcppcodegen/tst_qmlcppcodegen.cpp b/tests/auto/qml/qmlcppcodegen/tst_qmlcppcodegen.cpp
-index 3ce5627..8d98c02 100644
---- a/tests/auto/qml/qmlcppcodegen/tst_qmlcppcodegen.cpp
-+++ b/tests/auto/qml/qmlcppcodegen/tst_qmlcppcodegen.cpp
-@@ -280,6 +280,7 @@
-     void stringLength();
-     void stringToByteArray();
-     void structuredValueType();
-+    void multiEnginePropertyCache();
-     void takeNumbers();
-     void takeNumbers_data();
-     void testIsnan();
-@@ -5795,6 +5796,26 @@
-     QCOMPARE(o->property("w2").value<WeatherModelUrl>(), w2);
- }
- 
-+void tst_QmlCppCodegen::multiEnginePropertyCache()
-+{
-+    QQmlEngine engine;
-+    QQmlComponent c(&engine, QUrl(u"qrc:/qt/qml/TestTypes/multiEnginePropertyCache.qml"_s));
-+    QVERIFY2(c.isReady(), qPrintable(c.errorString()));
-+    std::unique_ptr<QObject> o(c.create());
-+    QVERIFY(o);
-+
-+    {
-+        QJSEngine other;
-+        other.newQObject(o.get());
-+    }
-+
-+    QTest::ignoreMessage(QtDebugMsg, "close1");
-+    o->setProperty("foo", 1);
-+
-+    QTest::ignoreMessage(QtDebugMsg, "close2");
-+    o->setProperty("bar", 2);
-+}
-+
- void tst_QmlCppCodegen::takeNumbers()
- {
-     QFETCH(QByteArray, method);
diff --git a/debian/patches/series b/debian/patches/series
deleted file mode 100644
index 1f1d8c1..0000000
--- a/debian/patches/series
+++ /dev/null
@@ -1 +0,0 @@
-dc2358e.diff


More information about the Neon-commits mailing list