Diff between b32461d42df3dc11f9dfb46ced695be18f903b27 and b3132fe96667c9f8a385e09726f35a154153e752

Changed Files

File Additions Deletions Status
android/hidhost.c +10 -0 modified

Full Patch

diff --git a/android/hidhost.c b/android/hidhost.c
index df21f81..d0000a8 100644
--- a/android/hidhost.c
+++ b/android/hidhost.c
@@ -1223,6 +1223,14 @@ bool bt_hid_register(int sk, const bdaddr_t *addr)
 	return true;
 }
 
+static void free_hid_devices(gpointer data, gpointer user_data)
+{
+	struct hid_device *dev = data;
+
+	bt_hid_notify_state(dev, HAL_HIDHOST_STATE_DISCONNECTED);
+	hid_device_free(dev);
+}
+
 void bt_hid_unregister(void)
 {
 	DBG("");
@@ -1230,6 +1238,8 @@ void bt_hid_unregister(void)
 	if (notification_sk < 0)
 		return;
 
+	g_slist_foreach(devices, free_hid_devices, NULL);
+	devices = NULL;
 	notification_sk = -1;
 
 	if (ctrl_io) {