1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-08 19:48:20 +02:00

DLA null check fix

This commit is contained in:
Brian Fiete 2022-08-01 08:06:58 -04:00
parent 17dfc96a1f
commit 39595bf387

View file

@ -22506,15 +22506,17 @@ BfModuleMethodInstance BfModule::GetLocalMethodInstance(BfLocalMethod* localMeth
auto rootMethodState = mCurMethodState->GetRootMethodState();
BfDeferredLocalAssignData deferredLocalAssignData(rootMethodState->mCurScope);
deferredLocalAssignData.mVarIdBarrier = rootMethodState->mCurLocalVarId;
if (rootMethodState->mDeferredLocalAssignData != NULL)
auto prevDLA = rootMethodState->mDeferredLocalAssignData;
while ((prevDLA != NULL) && (prevDLA->mIsChained))
prevDLA = prevDLA->mChainedAssignData;
if (prevDLA != NULL)
{
auto prevDLA = rootMethodState->mDeferredLocalAssignData;
while ((prevDLA != NULL) && (prevDLA->mIsChained))
prevDLA = prevDLA->mChainedAssignData;
deferredLocalAssignData.mAssignedLocals = prevDLA->mAssignedLocals;
deferredLocalAssignData.mLeftBlockUncond = prevDLA->mLeftBlockUncond;
}
SetAndRestoreValue<BfDeferredLocalAssignData*> prevDLA(rootMethodState->mDeferredLocalAssignData, &deferredLocalAssignData);
SetAndRestoreValue<BfDeferredLocalAssignData*> sarDLA(rootMethodState->mDeferredLocalAssignData, &deferredLocalAssignData);
if (!mIgnoreErrors)
localMethod->mDidBodyErrorPass = true;