From a19ecbe757f138bce2b83d3c2a1c6e9417c213bb Mon Sep 17 00:00:00 2001 From: chenyunxiong Date: Wed, 18 Nov 2020 10:44:47 +0800 Subject: [PATCH] =?UTF-8?q?fix(bluetooth):=20=E5=BD=93=E8=93=9D=E7=89=99?= =?UTF-8?q?=E9=80=82=E9=85=8D=E5=99=A8id=E7=9B=B8=E5=90=8C=E6=97=B6?= =?UTF-8?q?=EF=BC=8C=E4=B8=BA=E4=BA=86=E9=98=B2=E6=AD=A2=E5=86=85=E5=AD=98?= =?UTF-8?q?=E6=B3=84=E9=9C=B2=EF=BC=8C=E4=B8=8D=E5=BA=94=E8=AF=A5=E6=9B=BF?= =?UTF-8?q?=E6=8D=A2map=E7=9A=84=E5=85=83=E7=B4=A0=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adapter为动态分配的内存空间,如果直接替换,可能导致这个变量无法被管理。所以如果传入相同的id指代的应该是同一个适配器,不需要替换。 Log: 当蓝牙适配器id相同时,为了防止内存泄露,不应该替换map的元素。 Change-Id: I3f0a4b9f46d728cc70c3d8a57cefa4fda2b908d8 --- plugins/bluetooth/componments/adaptersmanager.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/plugins/bluetooth/componments/adaptersmanager.cpp b/plugins/bluetooth/componments/adaptersmanager.cpp index 1598feee1..2421d8e8f 100644 --- a/plugins/bluetooth/componments/adaptersmanager.cpp +++ b/plugins/bluetooth/componments/adaptersmanager.cpp @@ -247,6 +247,10 @@ void AdaptersManager::adapterAdd(Adapter *adapter, const QJsonObject &adpterObj) QString id = adapter->id(); if (!id.isEmpty()) { + // in case memory leaks + if (m_adapters.contains(id)) { + return; + } m_adapters[id] = adapter; } }