From 089179bb016af6df063e25304bdb136242e43eeb Mon Sep 17 00:00:00 2001 From: Aaron Dodson Date: Tue, 15 Oct 2024 13:45:39 -0700 Subject: [PATCH] fix: Fix exception when disposing of a workspace with a variable block obscuring a shadow block. (#8619) --- core/workspace.ts | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/core/workspace.ts b/core/workspace.ts index 9e7d7c884..36ce720b8 100644 --- a/core/workspace.ts +++ b/core/workspace.ts @@ -371,7 +371,14 @@ export class Workspace implements IASTNodeLocation { this.topComments[this.topComments.length - 1].dispose(); } eventUtils.setGroup(existingGroup); - this.variableMap.clear(); + // If this is a flyout workspace, its variable map is shared with the + // parent workspace, so we either don't want to disturb it if we're just + // disposing the flyout, or if the flyout is being disposed because the + // main workspace is being disposed, then the main workspace will handle + // cleaning it up. + if (!this.isFlyout) { + this.variableMap.clear(); + } if (this.potentialVariableMap) { this.potentialVariableMap.clear(); }