From 36587357272414839920b562ffa522fc3e123244 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Duval?= Date: Wed, 20 Aug 2008 23:07:08 +0000 Subject: [PATCH] fDeviceAddons wasn't maintained correctly. this fixes #2610 git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27092 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/servers/input/DeviceManager.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/servers/input/DeviceManager.cpp b/src/servers/input/DeviceManager.cpp index 746a1c5bab..0798e6cc90 100644 --- a/src/servers/input/DeviceManager.cpp +++ b/src/servers/input/DeviceManager.cpp @@ -242,7 +242,7 @@ DeviceManager::StopMonitoringDevice(_BDeviceAddOn_ *addon, BDirectory directory; BPath path("/dev"); if (((err = path.Append(device)) != B_OK) - || ((err = directory.SetTo(path.Path())) != B_OK) + || ((err = directory.SetTo(path.Path())) != B_OK) || ((err = directory.GetNodeRef(&nref)) != B_OK)) return err; @@ -263,7 +263,7 @@ DeviceManager::StopMonitoringDevice(_BDeviceAddOn_ *addon, } } if (stillMonitored) - break; + break; } // remove from list @@ -277,6 +277,10 @@ DeviceManager::StopMonitoringDevice(_BDeviceAddOn_ *addon, } j++; } + + if (addon->fMonitoredRefs.IsEmpty()) { + fDeviceAddons.RemoveItem(addon); + } // stop monitoring if needed if (!stillMonitored) {