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

Deleted type protection in EmitGCMarkValue, RequestExtraCompile feature

This commit is contained in:
Brian Fiete 2025-02-19 12:01:06 -08:00
parent 6e0cabf8aa
commit 471897a150
6 changed files with 81 additions and 1 deletions

View file

@ -355,6 +355,7 @@ BfCompiler::BfCompiler(BfSystem* bfSystem, bool isResolveOnly)
mHasRequiredTypes = false;
mNeedsFullRefresh = false;
mFastFinish = false;
mExtraCompileRequested = false;
mHasQueuedTypeRebuilds = false;
mIsResolveOnly = isResolveOnly;
mResolvePassData = NULL;
@ -7182,6 +7183,7 @@ bool BfCompiler::DoCompile(const StringImpl& outputDirectory)
mOutputDirectory = outputDirectory;
mSystem->StartYieldSection();
mExtraCompileRequested = false;
mFastFinish = false;
mHasQueuedTypeRebuilds = false;
mCanceling = false;
@ -8082,7 +8084,23 @@ bool BfCompiler::DoCompile(const StringImpl& outputDirectory)
bool BfCompiler::Compile(const StringImpl& outputDirectory)
{
bool success = DoCompile(outputDirectory);
int passIdx = 0;
bool success = false;
while (true)
{
auto passState = mPassInstance->GetState();
success = DoCompile(outputDirectory);
if (!mExtraCompileRequested)
break;
mPassInstance->RestoreState(passState);
if (passIdx == 1)
break;
passIdx++;
}
if (!success)
return false;
if (mPassInstance->HasFailed())
@ -8132,6 +8150,11 @@ void BfCompiler::RequestFastFinish()
BpEvent("BfCompiler::RequestFastFinish", "");
}
void BfCompiler::RequestExtraCompile()
{
mExtraCompileRequested = true;
}
//#define WANT_COMPILE_LOG
void BfCompiler::CompileLog(const char* fmt ...)