mirror of
https://github.com/beefytech/Beef.git
synced 2025-06-10 12:32:20 +02:00
GetActiveTypeDef fix with non-applicable mCurTypeState
This commit is contained in:
parent
dae452da47
commit
6514416908
1 changed files with 15 additions and 7 deletions
|
@ -10178,8 +10178,16 @@ BfTypeDef* BfModule::GetActiveTypeDef(BfTypeInstance* typeInstanceOverride, bool
|
||||||
{
|
{
|
||||||
BfTypeDef* useTypeDef = NULL;
|
BfTypeDef* useTypeDef = NULL;
|
||||||
BfTypeInstance* typeInstance = (typeInstanceOverride != NULL) ? typeInstanceOverride : mCurTypeInstance;
|
BfTypeInstance* typeInstance = (typeInstanceOverride != NULL) ? typeInstanceOverride : mCurTypeInstance;
|
||||||
if ((mContext->mCurTypeState != NULL) && (mContext->mCurTypeState->mForceActiveTypeDef != NULL))
|
|
||||||
return mContext->mCurTypeState->mForceActiveTypeDef;
|
auto curTypeState = mContext->mCurTypeState;
|
||||||
|
if (curTypeState != NULL)
|
||||||
|
{
|
||||||
|
if ((curTypeState->mType != NULL) && (curTypeState->mType != typeInstance))
|
||||||
|
curTypeState = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((curTypeState != NULL) && (curTypeState->mForceActiveTypeDef != NULL))
|
||||||
|
return curTypeState->mForceActiveTypeDef;
|
||||||
if (typeInstance != NULL)
|
if (typeInstance != NULL)
|
||||||
useTypeDef = typeInstance->mTypeDef->GetDefinition();
|
useTypeDef = typeInstance->mTypeDef->GetDefinition();
|
||||||
if ((mCurMethodState != NULL) && (mCurMethodState->mMixinState != NULL) && (useMixinDecl))
|
if ((mCurMethodState != NULL) && (mCurMethodState->mMixinState != NULL) && (useMixinDecl))
|
||||||
|
@ -10202,12 +10210,12 @@ BfTypeDef* BfModule::GetActiveTypeDef(BfTypeInstance* typeInstanceOverride, bool
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (mContext->mCurTypeState != NULL)
|
else if (curTypeState != NULL)
|
||||||
{
|
{
|
||||||
if ((mContext->mCurTypeState->mCurFieldDef != NULL) && (mContext->mCurTypeState->mCurFieldDef->mDeclaringType != NULL))
|
if ((curTypeState->mCurFieldDef != NULL) && (curTypeState->mCurFieldDef->mDeclaringType != NULL))
|
||||||
useTypeDef = mContext->mCurTypeState->mCurFieldDef->mDeclaringType->GetDefinition(true);
|
useTypeDef = curTypeState->mCurFieldDef->mDeclaringType->GetDefinition(true);
|
||||||
else if (mContext->mCurTypeState->mCurTypeDef != NULL)
|
else if (curTypeState->mCurTypeDef != NULL)
|
||||||
useTypeDef = mContext->mCurTypeState->mCurTypeDef->GetDefinition(true);
|
useTypeDef = curTypeState->mCurTypeDef->GetDefinition(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
return useTypeDef;
|
return useTypeDef;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue