From 4794c4412156c8e97a1ca49cc2db263b6e21c8a4 Mon Sep 17 00:00:00 2001 From: Billy Huddleston Date: Mon, 10 Nov 2025 17:12:30 -0500 Subject: [PATCH] CAM: Fix ReferenceError when accessing deleted toolbit object Prevent crash (CAMTests) in ToolBitRecomputeObserver when the toolbit object has been deleted/missing by catching ReferenceError before accessing its Document attribute. This ensures slotRecomputedDocument exits gracefully if the object is no longer valid. src/Mod/CAM/Path/Tool/toolbit/models/base.py - Wrapped access to self.toolbit_proxy.obj.Document in try/except to handle ReferenceError if object is deleted/missing, preventing crash during document recompute. --- src/Mod/CAM/Path/Tool/toolbit/models/base.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/Mod/CAM/Path/Tool/toolbit/models/base.py b/src/Mod/CAM/Path/Tool/toolbit/models/base.py index 1ebba66863..f9dcfc5a83 100644 --- a/src/Mod/CAM/Path/Tool/toolbit/models/base.py +++ b/src/Mod/CAM/Path/Tool/toolbit/models/base.py @@ -52,8 +52,15 @@ class ToolBitRecomputeObserver: def slotRecomputedDocument(self, doc): """Called when document recompute is finished.""" + # Check if the toolbit object is still valid + try: + obj_doc = self.toolbit_proxy.obj.Document + except ReferenceError: + # Object has been deleted or does not exist, nothing to do + return + # Only process updates for the correct document - if doc != self.toolbit_proxy.obj.Document: + if doc != obj_doc: return # Process any queued visual updates