From d56038bc4c6d711f829cd2cde55d501622fb5ad7 Mon Sep 17 00:00:00 2001 From: PaddleStroke Date: Tue, 23 Sep 2025 18:06:01 +0200 Subject: [PATCH] Assembly: Prevent crash when link to linkgroup in subassembly (#24125) * Assembly: Prevent crash when link to linkgroup in subassembly * ViewProviderAssembly: Additional crash failsafe. --- src/Mod/Assembly/App/AssemblyObject.cpp | 5 +++++ src/Mod/Assembly/Gui/ViewProviderAssembly.cpp | 3 +++ 2 files changed, 8 insertions(+) diff --git a/src/Mod/Assembly/App/AssemblyObject.cpp b/src/Mod/Assembly/App/AssemblyObject.cpp index 5eb7267836..3be6e90d9c 100644 --- a/src/Mod/Assembly/App/AssemblyObject.cpp +++ b/src/Mod/Assembly/App/AssemblyObject.cpp @@ -997,6 +997,11 @@ AssemblyObject::getConnectedParts(App::DocumentObject* part, App::DocumentObject* obj1 = getMovingPartFromRef(this, joint, "Reference1"); App::DocumentObject* obj2 = getMovingPartFromRef(this, joint, "Reference2"); + + if (!obj1 || !obj2) { + continue; + } + if (obj1 == part) { auto* ref = dynamic_cast(joint->getPropertyByName("Reference2")); diff --git a/src/Mod/Assembly/Gui/ViewProviderAssembly.cpp b/src/Mod/Assembly/Gui/ViewProviderAssembly.cpp index 5c1216b94d..66b83809f7 100644 --- a/src/Mod/Assembly/Gui/ViewProviderAssembly.cpp +++ b/src/Mod/Assembly/Gui/ViewProviderAssembly.cpp @@ -794,6 +794,9 @@ ViewProviderAssembly::DragMode ViewProviderAssembly::findDragMode() { auto addPartsToMove = [&](const std::vector& refs) { for (auto& partRef : refs) { + if (!partRef.obj) { + continue; + } auto* pPlc = dynamic_cast(partRef.obj->getPropertyByName("Placement")); if (pPlc) {