diff --git a/src/add-ons/disk_systems/intel/PartitionMapAddOn.cpp b/src/add-ons/disk_systems/intel/PartitionMapAddOn.cpp index 22a80326e3..913bf3c38c 100644 --- a/src/add-ons/disk_systems/intel/PartitionMapAddOn.cpp +++ b/src/add-ons/disk_systems/intel/PartitionMapAddOn.cpp @@ -237,6 +237,7 @@ PartitionMapHandle::SupportedChildOperations(const BMutablePartition* child, return B_DISK_SYSTEM_SUPPORTS_RESIZING_CHILD | B_DISK_SYSTEM_SUPPORTS_MOVING_CHILD | B_DISK_SYSTEM_SUPPORTS_SETTING_TYPE + | B_DISK_SYSTEM_SUPPORTS_SETTING_PARAMETERS | B_DISK_SYSTEM_SUPPORTS_DELETING_CHILD; } diff --git a/src/kits/storage/disk_device/Partition.cpp b/src/kits/storage/disk_device/Partition.cpp index 5964a8ae5b..5c5ff53477 100644 --- a/src/kits/storage/disk_device/Partition.cpp +++ b/src/kits/storage/disk_device/Partition.cpp @@ -1001,7 +1001,7 @@ status_t BPartition::ValidateSetType(const char* type) const { BPartition* parent = Parent(); - if (parent == NULL || fDelegate == NULL) + if (parent == NULL || parent->fDelegate == NULL || fDelegate == NULL) return B_NO_INIT; return parent->fDelegate->ValidateSetType(fDelegate, type); @@ -1012,7 +1012,7 @@ status_t BPartition::SetType(const char* type) { BPartition* parent = Parent(); - if (parent == NULL || fDelegate == NULL) + if (parent == NULL || parent->fDelegate == NULL || fDelegate == NULL) return B_NO_INIT; return parent->fDelegate->SetType(fDelegate, type); @@ -1035,10 +1035,11 @@ status_t BPartition::GetParameterEditor(B_PARAMETER_EDITOR_TYPE type, BPartitionParameterEditor** editor) { - if (fDelegate == NULL) + BPartition* parent = Parent(); + if (parent == NULL || parent->fDelegate == NULL) return B_NO_INIT; - return fDelegate->GetParameterEditor(type, editor); + return parent->fDelegate->GetParameterEditor(type, editor); } @@ -1046,7 +1047,7 @@ status_t BPartition::SetParameters(const char* parameters) { BPartition* parent = Parent(); - if (parent == NULL || fDelegate == NULL) + if (parent == NULL || parent->fDelegate == NULL || fDelegate == NULL) return B_NO_INIT; return parent->fDelegate->SetParameters(fDelegate, parameters);