From 1ff4ad085c28bb779b11035939fa1cb4867bf093 Mon Sep 17 00:00:00 2001 From: wmayer Date: Sun, 10 Apr 2022 12:18:41 +0200 Subject: [PATCH] App: issue #6672: PartDesign SubShapeBinder: crash and other issues when manually editing Support This change only fixes the crash as described in procedure A at https://github.com/FreeCAD/FreeCAD/issues/6672 --- src/App/DynamicProperty.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/App/DynamicProperty.cpp b/src/App/DynamicProperty.cpp index 635f8e85de..c049ce22b1 100644 --- a/src/App/DynamicProperty.cpp +++ b/src/App/DynamicProperty.cpp @@ -243,10 +243,14 @@ bool DynamicProperty::removeDynamicProperty(const char* name) throw Base::RuntimeError("property is not dynamic"); Property *prop = it->property; GetApplication().signalRemoveDynamicProperty(*prop); - Property::destroy(prop); - index.erase(it); - // memory of myName has been freed - prop->myName = nullptr; + + // Handle possible recursive calls of removeDynamicProperty + if (prop->myName) { + Property::destroy(prop); + index.erase(it); + // memory of myName has been freed + prop->myName = nullptr; + } return true; }