diff --git a/IDEHelper/Compiler/BfModule.cpp b/IDEHelper/Compiler/BfModule.cpp index 161d46e0..ccccb719 100644 --- a/IDEHelper/Compiler/BfModule.cpp +++ b/IDEHelper/Compiler/BfModule.cpp @@ -21706,7 +21706,12 @@ void BfModule::ProcessMethod(BfMethodInstance* methodInstance, bool isInlineDup, BfLocalVariable* paramVar = NULL; while (true) { - BF_ASSERT(localIdx < methodState.mLocals.size()); + if (localIdx >= methodState.mLocals.size()) + { + paramVar = NULL; + break; + } + paramVar = methodState.mLocals[localIdx]; if ((paramVar->mCompositeCount == -1) && (!paramVar->mIsConst) && @@ -21715,6 +21720,12 @@ void BfModule::ProcessMethod(BfMethodInstance* methodInstance, bool isInlineDup, localIdx++; } + if (paramVar == NULL) + { + Fail("Parameter count error", methodDef->GetRefNode()); + break; + } + if ((isThis) && (mCurTypeInstance->IsValueType()) && (methodDef->mMethodType != BfMethodType_Ctor) && (!methodDef->HasNoThisSplat())) { paramVar->mIsReadOnly = true;