aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRisto Avila <risto.avila@theqtcompany.com>2015-12-17 05:00:05 +0200
committerRisto Avila <risto.avila@theqtcompany.com>2015-12-17 05:00:05 +0200
commit565235cf6861f03a8d9d6b2613213509949b44d9 (patch)
tree59f1a4447be7224bb38c012523e1723da9d43244
parentce79341254c09139c35fb7289eb329681fc562c2 (diff)
Workaround for QDbus caching introspects.
This just quickly removes the cached object to force introspect. Final solution will upstreamed in the future. Change-Id: I156a1a97a0c4d1f17eed1d164e18ee8f73dec074 Signed-off-by: Risto Avila <risto.avila@theqtcompany.com>
-rw-r--r--recipes-qt/qt5/qtbase/0001-Force-qdbus-to-make-introspect-for-every-findMetaObj.patch30
-rw-r--r--recipes-qt/qt5/qtbase_%.bbappend4
2 files changed, 34 insertions, 0 deletions
diff --git a/recipes-qt/qt5/qtbase/0001-Force-qdbus-to-make-introspect-for-every-findMetaObj.patch b/recipes-qt/qt5/qtbase/0001-Force-qdbus-to-make-introspect-for-every-findMetaObj.patch
new file mode 100644
index 00000000..10a1ddd8
--- /dev/null
+++ b/recipes-qt/qt5/qtbase/0001-Force-qdbus-to-make-introspect-for-every-findMetaObj.patch
@@ -0,0 +1,30 @@
+From a4943bb5c7fdf5eb297223d2c3bb02d2271bea48 Mon Sep 17 00:00:00 2001
+From: Risto Avila <risto.avila@theqtcompany.com>
+Date: Thu, 17 Dec 2015 04:22:53 +0200
+Subject: [PATCH] Force qdbus to make introspect for every findMetaObject
+
+---
+ src/dbus/qdbusintegrator.cpp | 7 +++++--
+ 1 file changed, 5 insertions(+), 2 deletions(-)
+
+diff --git a/src/dbus/qdbusintegrator.cpp b/src/dbus/qdbusintegrator.cpp
+index cce8b9c..ae2a9dc 100644
+--- a/src/dbus/qdbusintegrator.cpp
++++ b/src/dbus/qdbusintegrator.cpp
+@@ -2512,8 +2512,11 @@ QDBusConnectionPrivate::findMetaObject(const QString &service, const QString &pa
+ if (!interface.isEmpty()) {
+ QDBusReadLocker locker(FindMetaObject1Action, this);
+ QDBusMetaObject *mo = cachedMetaObjects.value(interface, 0);
+- if (mo)
+- return mo;
++ if (mo) {
++ // service is not unique. Remove cached object to force introspect
++ cachedMetaObjects.remove(interface);
++ delete mo;
++ }
+ }
+
+ // introspect the target object
+--
+1.9.1
+
diff --git a/recipes-qt/qt5/qtbase_%.bbappend b/recipes-qt/qt5/qtbase_%.bbappend
index 7b6ab875..ebca5c8e 100644
--- a/recipes-qt/qt5/qtbase_%.bbappend
+++ b/recipes-qt/qt5/qtbase_%.bbappend
@@ -1,5 +1,9 @@
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
+SRC_URI_append = "\
+ file://0001-Force-qdbus-to-make-introspect-for-every-findMetaObj.patch \
+ "
+
DEPENDS_append_koelsch = " libegl"
DEPENDS_append_porter = " libegl"