[SCM] kdeconnect packaging branch, master, updated. debian/0.9g-1-1183-g9d69498

Maximiliano Curia maxy at moszumanska.debian.org
Fri Oct 14 14:28:46 UTC 2016


Gitweb-URL: http://git.debian.org/?p=pkg-kde/kde-extras/kdeconnect.git;a=commitdiff;h=38aa970

The following commit has been merged in the master branch:
commit 38aa9704a70113aa23093cfb64127cef863f69a6
Author: Lamarque V. Souza <lamarque at kde.org>
Date:   Sat Jul 18 16:36:58 2015 -0300

    Only deletes dbus interfaces for the same device that had created it.
---
 plugins/battery/batterydbusinterface.cpp | 11 ++++++-----
 plugins/battery/batterydbusinterface.h   |  3 ++-
 2 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/plugins/battery/batterydbusinterface.cpp b/plugins/battery/batterydbusinterface.cpp
index 950de73..9e06c30 100644
--- a/plugins/battery/batterydbusinterface.cpp
+++ b/plugins/battery/batterydbusinterface.cpp
@@ -24,7 +24,7 @@
 #include <QDebug>
 #include <core/device.h>
 
-BatteryDbusInterface *BatteryDbusInterface::s_currentInterface = 0;
+QMap<QString, BatteryDbusInterface *> BatteryDbusInterface::s_dbusInterfaces;
 
 BatteryDbusInterface::BatteryDbusInterface(const Device *device)
     : QDBusAbstractAdaptor(const_cast<Device*>(device))
@@ -35,12 +35,13 @@ BatteryDbusInterface::BatteryDbusInterface(const Device *device)
     // This makes the old BatteryDdbusInterface be deleted only after the new one is
     // fully operational. That seems to prevent the crash mentioned in BatteryPlugin's
     // destructor.
-    if (s_currentInterface) {
-        qCDebug(KDECONNECT_PLUGIN_BATTERY) << "Deleting stale BattteryDbusInterface object.";
-        s_currentInterface->deleteLater();
+    QMap<QString, BatteryDbusInterface *>::iterator oldInterfaceIter = s_dbusInterfaces.find(device->id());
+    if (oldInterfaceIter != s_dbusInterfaces.end()) {
+        qCDebug(KDECONNECT_PLUGIN_BATTERY) << "Deleting stale BattteryDbusInterface for" << device->name();
+        oldInterfaceIter.value()->deleteLater();
     }
 
-    s_currentInterface = this;
+    s_dbusInterfaces[device->id()] = this;
 }
 
 BatteryDbusInterface::~BatteryDbusInterface()
diff --git a/plugins/battery/batterydbusinterface.h b/plugins/battery/batterydbusinterface.h
index 434bed2..01d4ef7 100644
--- a/plugins/battery/batterydbusinterface.h
+++ b/plugins/battery/batterydbusinterface.h
@@ -48,7 +48,8 @@ private:
     int mCharge;
     bool mIsCharging;
 
-    static BatteryDbusInterface *s_currentInterface;
+    // Map to save current BatteryDbusInterface for each device.
+    static QMap<QString, BatteryDbusInterface *> s_dbusInterfaces;
 };
 
 #endif

-- 
kdeconnect packaging



More information about the pkg-kde-commits mailing list