mirror of
https://github.com/beefytech/Beef.git
synced 2025-06-08 19:48:20 +02:00
Added some StackHelper points
This commit is contained in:
parent
06ceaf617b
commit
27f382a567
1 changed files with 35 additions and 0 deletions
|
@ -11,6 +11,7 @@
|
|||
#include "BfMangler.h"
|
||||
#include "BeefySysLib/util/PerfTimer.h"
|
||||
#include "BeefySysLib/util/BeefPerf.h"
|
||||
#include "BeefySysLib/util/StackHelper.h"
|
||||
#include "BfSourceClassifier.h"
|
||||
#include "BfAutoComplete.h"
|
||||
#include "BfDemangler.h"
|
||||
|
@ -3575,6 +3576,23 @@ void BfModule::DoPopulateType(BfType* resolvedTypeRef, BfPopulateType populateTy
|
|||
DoPopulateType_InitSearches(typeInstance);
|
||||
}
|
||||
|
||||
//
|
||||
{
|
||||
BP_ZONE("DoPopulateType:CheckStack");
|
||||
StackHelper stackHelper;
|
||||
if (!stackHelper.CanStackExpand(128 * 1024))
|
||||
{
|
||||
if (!stackHelper.Execute([&]()
|
||||
{
|
||||
DoPopulateType(resolvedTypeRef, populateType);
|
||||
}))
|
||||
{
|
||||
Fail("Stack exhausted in DoPopulateType", typeDef->GetRefNode());
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
bool underlyingTypeDeferred = false;
|
||||
BfType* underlyingType = NULL;
|
||||
if (typeInstance->mBaseType != NULL)
|
||||
|
@ -5665,6 +5683,23 @@ void BfModule::DoTypeInstanceMethodProcessing(BfTypeInstance* typeInstance)
|
|||
return;
|
||||
}
|
||||
|
||||
//
|
||||
{
|
||||
BP_ZONE("DoTypeInstanceMethodProcessing:CheckStack");
|
||||
StackHelper stackHelper;
|
||||
if (!stackHelper.CanStackExpand(128 * 1024))
|
||||
{
|
||||
if (!stackHelper.Execute([&]()
|
||||
{
|
||||
DoTypeInstanceMethodProcessing(typeInstance);
|
||||
}))
|
||||
{
|
||||
Fail("Stack exhausted in DoPopulateType", typeInstance->mTypeDef->GetRefNode());
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
BF_ASSERT_REL(typeInstance->mNeedsMethodProcessing);
|
||||
BF_ASSERT_REL(typeInstance->mDefineState == BfTypeDefineState_Defined);
|
||||
typeInstance->mDefineState = BfTypeDefineState_DefinedAndMethodsSlotting;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue