|
@@ -360,6 +360,8 @@ BfCompiler::BfCompiler(BfSystem* bfSystem, bool isResolveOnly)
|
|
|
//mMaxInterfaceSlots = 16;
|
|
|
mMaxInterfaceSlots = -1;
|
|
|
mInterfaceSlotCountChanged = false;
|
|
|
+ mLastHadComptimeRebuilds = false;
|
|
|
+ mHasComptimeRebuilds = false;
|
|
|
|
|
|
mHSPreserveIdx = 0;
|
|
|
mCompileLogFP = NULL;
|
|
@@ -6561,6 +6563,7 @@ bool BfCompiler::DoCompile(const StringImpl& outputDirectory)
|
|
|
|
|
|
// Inc revision for next run through Compile
|
|
|
mRevision++;
|
|
|
+ mHasComptimeRebuilds = false;
|
|
|
int revision = mRevision;
|
|
|
BfLogSysM("Compile Start. Revision: %d. HasParser:%d AutoComplete:%d\n", revision,
|
|
|
(mResolvePassData != NULL) && (mResolvePassData->mParser != NULL),
|
|
@@ -7494,6 +7497,11 @@ bool BfCompiler::DoCompile(const StringImpl& outputDirectory)
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
+ if (didCancel)
|
|
|
+ mLastHadComptimeRebuilds = mHasComptimeRebuilds || mLastHadComptimeRebuilds;
|
|
|
+ else
|
|
|
+ mLastHadComptimeRebuilds = mHasComptimeRebuilds;
|
|
|
+
|
|
|
return !didCancel && !mHasQueuedTypeRebuilds;
|
|
|
}
|
|
|
|
|
@@ -9081,6 +9089,11 @@ BF_EXPORT int BF_CALLTYPE BfCompiler_GetCurConstEvalExecuteId(BfCompiler* bfComp
|
|
|
return bfCompiler->mCEMachine->mExecuteId;
|
|
|
}
|
|
|
|
|
|
+BF_EXPORT float BF_CALLTYPE BfCompiler_GetLastHadComptimeRebuilds(BfCompiler* bfCompiler)
|
|
|
+{
|
|
|
+ return bfCompiler->mLastHadComptimeRebuilds;
|
|
|
+}
|
|
|
+
|
|
|
BF_EXPORT void BF_CALLTYPE BfCompiler_Cancel(BfCompiler* bfCompiler)
|
|
|
{
|
|
|
bfCompiler->Cancel();
|