From e5e11d52d462ca178f384573451e9ec6057f6227 Mon Sep 17 00:00:00 2001 From: Brian Fiete Date: Thu, 28 Oct 2021 09:33:11 -0700 Subject: [PATCH] Fixed EvaluateWithNewScope in const eval --- IDEHelper/Compiler/BfModule.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/IDEHelper/Compiler/BfModule.cpp b/IDEHelper/Compiler/BfModule.cpp index 14d15188..439d3f04 100644 --- a/IDEHelper/Compiler/BfModule.cpp +++ b/IDEHelper/Compiler/BfModule.cpp @@ -8172,11 +8172,15 @@ BF_NOINLINE void BfModule::EvaluateWithNewScope(BfExprEvaluator& exprEvaluator, BfScopeData newScope; newScope.mOuterIsConditional = true; newScope.mAllowTargeting = false; - mCurMethodState->AddScope(&newScope); - NewScopeState(true, false); + if (mCurMethodState != NULL) + { + mCurMethodState->AddScope(&newScope); + NewScopeState(true, false); + } exprEvaluator.mBfEvalExprFlags = (BfEvalExprFlags)(exprEvaluator.mBfEvalExprFlags | flags); exprEvaluator.Evaluate(expr, (flags & BfEvalExprFlags_PropogateNullConditional) != 0, (flags & BfEvalExprFlags_IgnoreNullConditional) != 0, (flags & BfEvalExprFlags_AllowSplat) != 0); - RestoreScopeState(); + if (mCurMethodState != NULL) + RestoreScopeState(); } BfTypedValue BfModule::CreateValueFromExpression(BfExprEvaluator& exprEvaluator, BfExpression* expr, BfType* wantTypeRef, BfEvalExprFlags flags, BfType** outOrigType)