Skip to content

Commit ae22bdb

Browse files
Siecjedlech
authored andcommitted
Remove empty interfaces from BlueZManager._properties
1 parent b7606ed commit ae22bdb

File tree

2 files changed

+7
-0
lines changed

2 files changed

+7
-0
lines changed

CHANGELOG.rst

+1
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ Changed
1818
-------
1919
* Updated PyObjC dependency on macOS to v10.x.
2020
* Updated missing Bluetooth SIG characteristics and service UUIDs.
21+
* Updated ``BlueZManager`` to remove empty interfaces from `_properties` during InterfacesRemoved message.
2122

2223
Fixed
2324
-----

bleak/backends/bluezdbus/manager.py

+6
Original file line numberDiff line numberDiff line change
@@ -961,6 +961,12 @@ def _parse_msg(self, message: Message):
961961
del self._descriptor_map[obj_path]
962962
except KeyError:
963963
pass
964+
965+
# Remove empty properties when all interfaces have been removed.
966+
# This avoids wasting memory for people who have noisy devices
967+
# with private addresses that change frequently.
968+
if obj_path in self._properties and not self._properties[obj_path]:
969+
del self._properties[obj_path]
964970
elif message.member == "PropertiesChanged":
965971
interface, changed, invalidated = message.body
966972
message_path = message.path

0 commit comments

Comments
 (0)