From 2787214419dba8a4a30ce560a430e140ed68c025 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stephan=20A=C3=9Fmus?= Date: Tue, 8 Jan 2008 23:35:51 +0000 Subject: [PATCH] * VisitEachPartition() was not working correctly, terminatedEarly was not maintained git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23292 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/kits/storage/disk_device/DiskDeviceRoster.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/kits/storage/disk_device/DiskDeviceRoster.cpp b/src/kits/storage/disk_device/DiskDeviceRoster.cpp index e1fdb3c85b..bde877d8a1 100644 --- a/src/kits/storage/disk_device/DiskDeviceRoster.cpp +++ b/src/kits/storage/disk_device/DiskDeviceRoster.cpp @@ -212,8 +212,13 @@ BDiskDeviceRoster::VisitEachPartition(BDiskDeviceVisitor *visitor, BDiskDevice deviceOnStack; BDiskDevice *useDevice = (device ? device : &deviceOnStack); BPartition *foundPartition = NULL; - while (!foundPartition && GetNextDevice(useDevice) == B_OK) + while (GetNextDevice(useDevice) == B_OK) { foundPartition = useDevice->VisitEachDescendant(visitor); + if (foundPartition) { + terminatedEarly = true; + break; + } + } fDeviceCookie = oldCookie; if (!terminatedEarly) useDevice->Unset();