mirror of
https://github.com/beefytech/Beef.git
synced 2025-06-09 12:02:21 +02:00
DLA null check fix
This commit is contained in:
parent
17dfc96a1f
commit
39595bf387
1 changed files with 7 additions and 5 deletions
|
@ -22506,15 +22506,17 @@ BfModuleMethodInstance BfModule::GetLocalMethodInstance(BfLocalMethod* localMeth
|
||||||
auto rootMethodState = mCurMethodState->GetRootMethodState();
|
auto rootMethodState = mCurMethodState->GetRootMethodState();
|
||||||
BfDeferredLocalAssignData deferredLocalAssignData(rootMethodState->mCurScope);
|
BfDeferredLocalAssignData deferredLocalAssignData(rootMethodState->mCurScope);
|
||||||
deferredLocalAssignData.mVarIdBarrier = rootMethodState->mCurLocalVarId;
|
deferredLocalAssignData.mVarIdBarrier = rootMethodState->mCurLocalVarId;
|
||||||
if (rootMethodState->mDeferredLocalAssignData != NULL)
|
|
||||||
{
|
|
||||||
auto prevDLA = rootMethodState->mDeferredLocalAssignData;
|
auto prevDLA = rootMethodState->mDeferredLocalAssignData;
|
||||||
while ((prevDLA != NULL) && (prevDLA->mIsChained))
|
while ((prevDLA != NULL) && (prevDLA->mIsChained))
|
||||||
prevDLA = prevDLA->mChainedAssignData;
|
prevDLA = prevDLA->mChainedAssignData;
|
||||||
|
if (prevDLA != NULL)
|
||||||
|
{
|
||||||
deferredLocalAssignData.mAssignedLocals = prevDLA->mAssignedLocals;
|
deferredLocalAssignData.mAssignedLocals = prevDLA->mAssignedLocals;
|
||||||
deferredLocalAssignData.mLeftBlockUncond = prevDLA->mLeftBlockUncond;
|
deferredLocalAssignData.mLeftBlockUncond = prevDLA->mLeftBlockUncond;
|
||||||
}
|
}
|
||||||
SetAndRestoreValue<BfDeferredLocalAssignData*> prevDLA(rootMethodState->mDeferredLocalAssignData, &deferredLocalAssignData);
|
|
||||||
|
SetAndRestoreValue<BfDeferredLocalAssignData*> sarDLA(rootMethodState->mDeferredLocalAssignData, &deferredLocalAssignData);
|
||||||
if (!mIgnoreErrors)
|
if (!mIgnoreErrors)
|
||||||
localMethod->mDidBodyErrorPass = true;
|
localMethod->mDidBodyErrorPass = true;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue