From 89175c4c506780e6b7c04028ddb8cf547321e0bf Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Thu, 25 Jun 2009 15:35:59 +0000 Subject: [PATCH] Patch by Bryce Groff: Implemented DeleteChild(). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31235 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/add-ons/disk_systems/intel/PartitionMapAddOn.cpp | 11 +++++++++++ src/add-ons/disk_systems/intel/PartitionMapAddOn.h | 1 + 2 files changed, 12 insertions(+) diff --git a/src/add-ons/disk_systems/intel/PartitionMapAddOn.cpp b/src/add-ons/disk_systems/intel/PartitionMapAddOn.cpp index 966e90c81e..cf25dd10ae 100644 --- a/src/add-ons/disk_systems/intel/PartitionMapAddOn.cpp +++ b/src/add-ons/disk_systems/intel/PartitionMapAddOn.cpp @@ -364,6 +364,7 @@ PartitionMapHandle::ValidateCreateChild(off_t* _offset, off_t* _size, PartitionType type; if (!type.SetType(typeString) || type.IsEmpty()) return B_BAD_VALUE; + if (type.IsExtended() && fPartitionMap.ExtendedPartitionIndex() >= 0) return B_BAD_VALUE; @@ -556,3 +557,13 @@ PartitionMapHandle::CreateChild(off_t offset, off_t size, return B_OK; } + +// DeleteChild +status_t +PartitionMapHandle::DeleteChild(BMutablePartition* child) +{ + BMutablePartition* parent = child->Parent(); + status_t error = parent->DeleteChild(child); + + return error; +} diff --git a/src/add-ons/disk_systems/intel/PartitionMapAddOn.h b/src/add-ons/disk_systems/intel/PartitionMapAddOn.h index 617dc23802..3623ddd639 100644 --- a/src/add-ons/disk_systems/intel/PartitionMapAddOn.h +++ b/src/add-ons/disk_systems/intel/PartitionMapAddOn.h @@ -62,6 +62,7 @@ public: const char* type, const char* name, const char* parameters, BMutablePartition** child); + virtual status_t DeleteChild(BMutablePartition* child); private: PartitionMap fPartitionMap;