aboutsummaryrefslogtreecommitdiffstats
path: root/recipes-qt/qt/qtbase/0001-Force-qdbus-to-make-introspect-for-every-findMetaObj.patch
blob: 10a1ddd882ead0bbe1ca9822c0b903a3bc488849 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
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