Skip to content

Commit d2e1336

Browse files
committed
[NFC] Use getWrapperForModule to Simplify Clang Module Loading
1 parent c8077e8 commit d2e1336

File tree

1 file changed

+7
-32
lines changed

1 file changed

+7
-32
lines changed

lib/ClangImporter/ClangImporter.cpp

Lines changed: 7 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1805,38 +1805,13 @@ ModuleDecl *ClangImporter::Implementation::finishLoadingClangModule(
18051805
// Bump the generation count.
18061806
bumpGeneration();
18071807

1808-
auto &cacheEntry = ModuleWrappers[clangModule];
1809-
ModuleDecl *result;
1810-
ClangModuleUnit *wrapperUnit;
1811-
if ((wrapperUnit = cacheEntry.getPointer())) {
1812-
result = wrapperUnit->getParentModule();
1813-
if (!cacheEntry.getInt()) {
1814-
// Force load overlays for all imported modules.
1815-
// FIXME: This forces the creation of wrapper modules for all imports as
1816-
// well, and may do unnecessary work.
1817-
cacheEntry.setInt(true);
1818-
(void) namelookup::getAllImports(result);
1819-
}
1820-
} else {
1821-
// Build the representation of the Clang module in Swift.
1822-
// FIXME: The name of this module could end up as a key in the ASTContext,
1823-
// but that's not correct for submodules.
1824-
Identifier name = SwiftContext.getIdentifier((*clangModule).Name);
1825-
result = ModuleDecl::create(name, SwiftContext);
1826-
result->setIsSystemModule(clangModule->IsSystem);
1827-
result->setIsNonSwiftModule();
1828-
result->setHasResolvedImports();
1829-
1830-
wrapperUnit =
1831-
new (SwiftContext) ClangModuleUnit(*result, *this, clangModule);
1832-
result->addFile(*wrapperUnit);
1833-
SwiftContext.getClangModuleLoader()
1834-
->findOverlayFiles(importLoc, result, wrapperUnit);
1835-
cacheEntry.setPointerAndInt(wrapperUnit, true);
1836-
1837-
// Force load overlays for all imported modules.
1838-
// FIXME: This forces the creation of wrapper modules for all imports as
1839-
// well, and may do unnecessary work.
1808+
// Force load overlays for all imported modules.
1809+
// FIXME: This forces the creation of wrapper modules for all imports as
1810+
// well, and may do unnecessary work.
1811+
ClangModuleUnit *wrapperUnit = getWrapperForModule(clangModule, importLoc);
1812+
ModuleDecl *result = wrapperUnit->getParentModule();
1813+
if (!ModuleWrappers[clangModule].getInt()) {
1814+
ModuleWrappers[clangModule].setInt(true);
18401815
(void) namelookup::getAllImports(result);
18411816
}
18421817

0 commit comments

Comments
 (0)