| 78 | } |
| 79 | |
| 80 | void 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; |
nothing calls this directly
no test coverage detected