From 04f1802303a7eb225d812c25c61a3c30fa71e265 Mon Sep 17 00:00:00 2001 From: Brian Fiete Date: Mon, 22 Jan 2024 08:13:15 -0500 Subject: [PATCH] Fixed midcompile rebuild for deleted dependent types --- IDEHelper/Compiler/BfContext.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/IDEHelper/Compiler/BfContext.cpp b/IDEHelper/Compiler/BfContext.cpp index 65f8c0ad..0bb1eacc 100644 --- a/IDEHelper/Compiler/BfContext.cpp +++ b/IDEHelper/Compiler/BfContext.cpp @@ -1974,8 +1974,18 @@ void BfContext::DeleteType(BfType* type, bool deferDepRebuilds) for (auto dependentType : rebuildTypeQueue) { + auto dependentTypeInst = dependentType->ToTypeInstance(); + + // This guards against recompile loops if (CanRebuild(dependentType)) + { RebuildType(dependentType); + } + else if (dependentTypeInst != NULL) + { + // This keeps us from crashing from accessing deleted types on subsequent compiles + mFailTypes.TryAdd(dependentTypeInst, BfFailKind_Normal); + } } } }