From 6d3c6602735ef1ee6b9e07721524ab916b3baf80 Mon Sep 17 00:00:00 2001 From: Brian Fiete Date: Sat, 15 Feb 2025 15:03:55 -0800 Subject: [PATCH] Fixed some issues closing workspace while in comptime --- IDE/src/IDEApp.bf | 51 +++++++++++++++++++++++++++++------------------ 1 file changed, 32 insertions(+), 19 deletions(-) diff --git a/IDE/src/IDEApp.bf b/IDE/src/IDEApp.bf index ddc1acad..33a3dfa3 100644 --- a/IDE/src/IDEApp.bf +++ b/IDE/src/IDEApp.bf @@ -2516,9 +2516,16 @@ namespace IDE { if (mDebugger.mIsRunning) { + if (mDebugger.mIsComptimeDebug) + CancelBuild(); mDebugger.StopDebugging(); while (mDebugger.GetRunState() != .Terminated) { + if (mDebugger.mIsComptimeDebug) + { + if (!mBfBuildCompiler.IsPerformingBackgroundOperation()) + break; + } mDebugger.Update(); } mDebugger.mIsRunning = false; @@ -2526,6 +2533,9 @@ namespace IDE } mDebugger.DisposeNativeBreakpoints(); mWantsRehupCallstack = false; + + if (mDebugger.mIsComptimeDebug) + mDebugger.Detach(); } void CloseWorkspace() @@ -9644,29 +9654,32 @@ namespace IDE if ((processCompileCmd.mHadBeef) && (mVerbosity >= .Normal)) OutputLine("Beef compilation time: {0:0.00}s", processCompileCmd.mStopwatch.ElapsedMilliseconds / 1000.0f); - var compileInstance = mWorkspace.mCompileInstanceList.Back; - compileInstance.mCompileResult = .Failure; - if (processCompileCmd.mBfPassInstance.mCompileSucceeded) - { - //foreach (var sourceViewPanel in GetSourceViewPanels()) - WithSourceViewPanels(scope (sourceViewPanel) => - { - sourceViewPanel.mHasChangedSinceLastCompile = false; - }); - compileInstance.mCompileResult = .Success; - } - else + if (!mWorkspace.mCompileInstanceList.IsEmpty) { + var compileInstance = mWorkspace.mCompileInstanceList.Back; compileInstance.mCompileResult = .Failure; - } + if (processCompileCmd.mBfPassInstance.mCompileSucceeded) + { + //foreach (var sourceViewPanel in GetSourceViewPanels()) + WithSourceViewPanels(scope (sourceViewPanel) => + { + sourceViewPanel.mHasChangedSinceLastCompile = false; + }); + compileInstance.mCompileResult = .Success; + } + else + { + compileInstance.mCompileResult = .Failure; + } - ProcessBeefCompileResults(processCompileCmd.mBfPassInstance, processCompileCmd.mCompileKind, processCompileCmd.mHotProject, processCompileCmd.mStopwatch); - processCompileCmd.mBfPassInstance = null; + ProcessBeefCompileResults(processCompileCmd.mBfPassInstance, processCompileCmd.mCompileKind, processCompileCmd.mHotProject, processCompileCmd.mStopwatch); + processCompileCmd.mBfPassInstance = null; - if (mHotResolveState != .None) - { - if (compileInstance.mCompileResult == .Success) - compileInstance.mCompileResult = .PendingHotLoad; + if (mHotResolveState != .None) + { + if (compileInstance.mCompileResult == .Success) + compileInstance.mCompileResult = .PendingHotLoad; + } } if (processCompileCmd.mProfileCmd != null)