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

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


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

The following commit has been merged in the master branch:
commit 49a24c258b56fd2d2cd648d4e7c63545ead695a0
Author: Albert Vaca <albertvaka at gmail.com>
Date:   Thu Dec 17 05:54:24 2015 -0800

    Fixed crash
---
 core/backends/lan/lanlinkprovider.cpp   | 14 ++++++++++++--
 core/backends/lan/lanpairinghandler.cpp |  5 ++---
 core/backends/lan/lanpairinghandler.h   |  3 +--
 core/backends/pairinghandler.h          |  2 +-
 4 files changed, 16 insertions(+), 8 deletions(-)

diff --git a/core/backends/lan/lanlinkprovider.cpp b/core/backends/lan/lanlinkprovider.cpp
index 73f643f..504dff9 100644
--- a/core/backends/lan/lanlinkprovider.cpp
+++ b/core/backends/lan/lanlinkprovider.cpp
@@ -397,6 +397,7 @@ void LanLinkProvider::deviceLinkDestroyed(QObject* destroyedDeviceLink)
     if (linkIterator != mLinks.end()) {
         Q_ASSERT(linkIterator.value() == destroyedDeviceLink);
         mLinks.erase(linkIterator);
+        mPairingHandlers.remove(id);
     }
 
 }
@@ -447,6 +448,12 @@ void LanLinkProvider::addLink(const QString& deviceId, QSslSocket* socket, Netwo
         deviceLink = new LanDeviceLink(deviceId, this, socket, connectionOrigin);
         connect(deviceLink, SIGNAL(destroyed(QObject*)), this, SLOT(deviceLinkDestroyed(QObject*)));
         mLinks[deviceId] = deviceLink;
+        if (mPairingHandlers.contains(deviceId)) {
+            //We shouldn't have a pairinghandler if we didn't have a link.
+            //Crash if debug, recover if release (by setting the new devicelink to the old pairinghandler)
+            Q_ASSERT(mPairingHandlers.contains(deviceId));
+            mPairingHandlers[deviceId]->setDeviceLink(deviceLink);
+        }
     }
 
     Q_EMIT onConnectionReceived(*receivedPackage, deviceLink);
@@ -457,7 +464,9 @@ void LanLinkProvider::userRequestsPair(const QString& deviceId)
 {
     LanPairingHandler* ph = mPairingHandlers.value(deviceId);
     if (!ph) {
-        ph = new LanPairingHandler(deviceId);
+        LanDeviceLink* link = mLinks.value(deviceId);
+        qDebug() << "Creating LanPairingHandler with link " << link;
+        ph = new LanPairingHandler(link);
         mPairingHandlers[deviceId] = ph;
     }
 
@@ -469,9 +478,10 @@ void LanLinkProvider::incomingPairPackage(DeviceLink* deviceLink, const NetworkP
     const QString deviceId = deviceLink->deviceId();
     LanPairingHandler* ph = mPairingHandlers.value(deviceId);
     if (!ph) {
-        ph = new LanPairingHandler(deviceId);
+        ph = new LanPairingHandler(deviceLink);
         mPairingHandlers[deviceId] = ph;
     }
 
     ph->packageReceived(np);
 }
+
diff --git a/core/backends/lan/lanpairinghandler.cpp b/core/backends/lan/lanpairinghandler.cpp
index a3dba16..cee4ff6 100644
--- a/core/backends/lan/lanpairinghandler.cpp
+++ b/core/backends/lan/lanpairinghandler.cpp
@@ -27,9 +27,8 @@
 #include "lanpairinghandler.h"
 #include "networkpackagetypes.h"
 
-LanPairingHandler::LanPairingHandler(const QString& deviceId)
-    : PairingHandler()
-    , m_deviceId(deviceId)
+LanPairingHandler::LanPairingHandler(DeviceLink* deviceLink)
+    : PairingHandler(deviceLink)
     , m_status(NotPaired)
 {
     m_pairingTimeout.setSingleShot(true);
diff --git a/core/backends/lan/lanpairinghandler.h b/core/backends/lan/lanpairinghandler.h
index a088bb3..a6bde25 100644
--- a/core/backends/lan/lanpairinghandler.h
+++ b/core/backends/lan/lanpairinghandler.h
@@ -38,7 +38,7 @@ public:
         Paired,
     };
 
-    LanPairingHandler(const QString& deviceId);
+    LanPairingHandler(DeviceLink* deviceLink);
     virtual ~LanPairingHandler() { }
 
     virtual void createPairPackage(NetworkPackage& np) Q_DECL_OVERRIDE;
@@ -58,7 +58,6 @@ protected:
     void setInternalPairStatus(InternalPairStatus status);
 
     QTimer m_pairingTimeout;
-    QString m_deviceId;
 
     InternalPairStatus m_status;
 };
diff --git a/core/backends/pairinghandler.h b/core/backends/pairinghandler.h
index 1aac977..712b7ff 100644
--- a/core/backends/pairinghandler.h
+++ b/core/backends/pairinghandler.h
@@ -42,7 +42,7 @@ class KDECONNECTCORE_EXPORT PairingHandler : public QObject
     Q_OBJECT
 
 public:
-    PairingHandler(DeviceLink* parent = 0);
+    PairingHandler(DeviceLink* parent);
     virtual ~PairingHandler() { }
 
     DeviceLink* deviceLink() const;

-- 
kdeconnect packaging



More information about the pkg-kde-commits mailing list