From 8c599ee7db10383fc687c4de16ad06c6d538364f Mon Sep 17 00:00:00 2001 From: Brian Fiete Date: Fri, 21 Feb 2020 06:52:08 -0800 Subject: [PATCH] Fixed hot swapping issue --- IDE/src/BuildContext.bf | 21 +++++++++++++++------ IDE/src/IDEApp.bf | 2 +- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/IDE/src/BuildContext.bf b/IDE/src/BuildContext.bf index 20b7a86d..dfd18117 100644 --- a/IDE/src/BuildContext.bf +++ b/IDE/src/BuildContext.bf @@ -939,13 +939,21 @@ namespace IDE var bfProject = gApp.mBfBuildSystem.mProjectMap[project]; bool bfHadOutputChanges = false; List bfFileNames = scope List(); - if (project.mCurBfOutputFileNames == null) + if (hotProject == null) { - project.mCurBfOutputFileNames = new .(); - bfCompiler.GetOutputFileNames(bfProject, true, out bfHadOutputChanges, project.mCurBfOutputFileNames); + if (project.mCurBfOutputFileNames == null) + { + project.mCurBfOutputFileNames = new .(); + bfCompiler.GetOutputFileNames(bfProject, true, out bfHadOutputChanges, project.mCurBfOutputFileNames); + } + for (var fileName in project.mCurBfOutputFileNames) + bfFileNames.Add(fileName); + } + else + { + bfCompiler.GetOutputFileNames(bfProject, true, out bfHadOutputChanges, bfFileNames); + defer:: ClearAndDeleteItems(bfFileNames); } - for (var fileName in project.mCurBfOutputFileNames) - bfFileNames.Add(fileName); if (bfHadOutputChanges) project.mNeedsTargetRebuild = true; @@ -1031,7 +1039,8 @@ namespace IDE if (project.mGeneralOptions.mTargetType == .CustomBuild) { - DoPostBuild(); + if (hotProject == null) + DoPostBuild(); return true; } diff --git a/IDE/src/IDEApp.bf b/IDE/src/IDEApp.bf index c02a3f30..1047c589 100644 --- a/IDE/src/IDEApp.bf +++ b/IDE/src/IDEApp.bf @@ -259,7 +259,7 @@ namespace IDE public bool mStartedWithTestScript; public bool mExitWhenTestScriptDone = true; public ScriptManager mScriptManager = new ScriptManager() ~ delete _; - public TestManager mTestManager; + public TestManager mTestManager ~ delete _; public bool mExecutionPaused = false; public HotResolveState mHotResolveState; public int mHotResolveTryIdx;