MCPcopy Create free account
hub / github.com/beefytech/Beef / StartNewRevision

Method StartNewRevision

IDEHelper/Compiler/BfModule.cpp:1326–1468  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1324}
1325
1326void BfModule::StartNewRevision(RebuildKind rebuildKind, bool force)
1327{
1328 BP_ZONE("BfModule::StartNewRevision");
1329
1330 // The project MAY be deleted because disabling a project can cause types to be deleted which
1331 // causes other types rebuild BEFORE they get deleted, which is okay (though wasteful)
1332 //BF_ASSERT((mProject == NULL) || (!mProject->mDisabled));
1333
1334 if (mCompiler->mCompileState == BfCompiler::CompileState_Cleanup)
1335 {
1336 // Cleaning up local methods may cause some necessary NewRevisions
1337 force = true;
1338 }
1339
1340 // Already on new revision?
1341 if ((mRevision == mCompiler->mRevision) && (!force))
1342 return;
1343
1344 mHadBuildError = false;
1345 mHadBuildWarning = false;
1346 mExtensionCount = 0;
1347 mRevision = mCompiler->mRevision;
1348 mRebuildIdx++;
1349 ClearModuleData(!force);
1350
1351 // Clear this here, not in ClearModuleData, so we preserve those references even after writing out module
1352 if (rebuildKind != BfModule::RebuildKind_None) // Leave string pool refs for when we need to use things like [LinkName("")] methods bofore re-reification
1353 {
1354 mStringPoolRefs.Clear();
1355 mUnreifiedStringPoolRefs.Clear();
1356 }
1357 mDllImportEntries.Clear();
1358 mImportFileNames.Clear();
1359 for (auto& pairVal : mDeferredMethodCallData)
1360 delete pairVal.mValue;
1361 mDeferredMethodCallData.Clear();
1362 mDeferredMethodIds.Clear();
1363 mModuleRefs.Clear();
1364 mOutFileNames.Clear();
1365 mTypeDataRefs.Clear();
1366 mInterfaceSlotRefs.Clear();
1367
1368 if (rebuildKind == BfModule::RebuildKind_None)
1369 {
1370 for (auto& specPair : mSpecializedMethodModules)
1371 {
1372 auto specModule = specPair.mValue;
1373 if (specModule->mIsReified != mIsReified)
1374 {
1375 if (mIsReified)
1376 specModule->ReifyModule();
1377 else
1378 specModule->UnreifyModule();
1379 }
1380 }
1381 }
1382 else
1383 {

Callers 4

RebuildTypeMethod · 0.80
UpdateRevisedTypesMethod · 0.80
CreateVDataMethod · 0.80

Calls 12

ReifyModuleMethod · 0.80
UnreifyModuleMethod · 0.80
RemoveModuleDataMethod · 0.80
IsDeletingMethod · 0.80
DeleteTypeMethod · 0.80
RebuildTypeMethod · 0.80
InitFunction · 0.70
ClearMethod · 0.45
AddMethod · 0.45
c_strMethod · 0.45
sizeMethod · 0.45
IsOnDemandMethod · 0.45

Tested by

no test coverage detected