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

Method Process

IDEHelper/Compiler/BfDefBuilder.cpp:80–145  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

78}
79
80void BfDefBuilder::Process(BfPassInstance* passInstance, BfSource* bfSource, bool fullRefresh)
81{
82 BF_ASSERT((mSystem->mCurSystemLockThreadId == 0) || (mSystem->mCurSystemLockThreadId == BfpThread_GetCurrentId()));
83
84 String fileName;
85 BfParser* parser = bfSource->ToParser();
86 if (parser != NULL)
87 fileName = parser->mFileName;
88 BP_ZONE_F("BfDefBuilder::Process %s", fileName.c_str());
89 BfLogSys(parser->mSystem, "DefBuilder::Process parser %p\n", parser);
90
91 if (mResolvePassData == NULL)
92 mSystem->mNeedsTypesHandledByCompiler = true;
93
94 mPassInstance = passInstance;
95
96 bool isAutocomplete = false;
97 if ((mResolvePassData != NULL) && (mResolvePassData->mAutoComplete != NULL))
98 {
99 mCurSource = bfSource;
100 Visit(bfSource->mRootNode);
101 mCurSource = NULL;
102 mPassInstance = NULL;
103 return;
104 }
105
106 mFullRefresh = fullRefresh;
107
108 if (bfSource->mPrevRevision != NULL)
109 {
110 for (auto typeDef : bfSource->mPrevRevision->mTypeDefs)
111 {
112 BF_ASSERT((typeDef->mDefState >= BfTypeDef::DefState_New) && (typeDef->mDefState < BfTypeDef::DefState_Deleted));
113 typeDef->mDefState = BfTypeDef::DefState_AwaitingNewVersion;
114 }
115 }
116
117 {
118 BP_ZONE("RootNode");
119 if (bfSource->mRootNode != NULL)
120 {
121 mCurSource = bfSource;
122 Visit(bfSource->mRootNode);
123 mCurSource = NULL;
124 }
125 }
126
127 if (bfSource->mPrevRevision != NULL)
128 {
129 for (auto typeDef : bfSource->mPrevRevision->mTypeDefs)
130 {
131 if (!typeDef->mIsCombinedPartial)
132 {
133 if (typeDef->mDefState == BfTypeDef::DefState_AwaitingNewVersion)
134 {
135 BfLogSys(parser->mSystem, "DefBuilder::Process deleting typeDef %p\n", typeDef);
136 typeDef->mName->mAtomUpdateIdx = ++mSystem->mAtomUpdateIdx;
137 typeDef->mDefState = BfTypeDef::DefState_Deleted;

Callers

nothing calls this directly

Calls 4

VisitFunction · 0.85
BfpThread_GetCurrentIdFunction · 0.50
ToParserMethod · 0.45
c_strMethod · 0.45

Tested by

no test coverage detected