fix dangling pointer when cancelling multi-transform task panel

This commit is contained in:
wmayer
2017-09-29 19:18:34 +02:00
parent 6d9cf80c97
commit 3769d38e89
2 changed files with 14 additions and 1 deletions
@@ -191,6 +191,13 @@ void TaskMultiTransformParameters::onFeatureDeleted(void)
recomputeFeature();
}
void TaskMultiTransformParameters::slotDeletedObject(const Gui::ViewProviderDocumentObject& Obj)
{
if (Obj.getObject() == this->subFeature)
this->subFeature = nullptr;
TaskTransformedParameters::slotDeletedObject(Obj);
}
void TaskMultiTransformParameters::closeSubTask()
{
if (subTask) {
@@ -209,6 +216,8 @@ void TaskMultiTransformParameters::onTransformDelete()
std::vector<App::DocumentObject*> transformFeatures = pcMultiTransform->Transformations.getValues();
App::DocumentObject* feature = transformFeatures[row];
if (feature == this->subFeature)
this->subFeature = nullptr;
pcMultiTransform->getDocument()->removeObject(feature->getNameInDocument());
closeSubTask();