Skip to content

Commit 1020200

Browse files
committed
[Bridging PCH] Store ClangImporter::BridgingHeaderLookupTable indirectly.
1 parent 1313195 commit 1020200

File tree

2 files changed

+10
-9
lines changed

2 files changed

+10
-9
lines changed

lib/ClangImporter/ClangImporter.cpp

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -754,7 +754,7 @@ ClangImporter::create(ASTContext &ctx,
754754
importer->Impl.addBridgeHeaderTopLevelDecls(D);
755755

756756
if (auto named = dyn_cast<clang::NamedDecl>(D)) {
757-
addEntryToLookupTable(importer->Impl.BridgingHeaderLookupTable, named,
757+
addEntryToLookupTable(*importer->Impl.BridgingHeaderLookupTable, named,
758758
*importer->Impl.nameImporter);
759759
}
760760
}
@@ -873,14 +873,14 @@ bool ClangImporter::Implementation::importHeader(
873873
for (auto group : allParsedDecls)
874874
for (auto *D : group)
875875
if (auto named = dyn_cast<clang::NamedDecl>(D))
876-
addEntryToLookupTable(BridgingHeaderLookupTable, named,
876+
addEntryToLookupTable(*BridgingHeaderLookupTable, named,
877877
getNameImporter());
878878

879879
pp.EndSourceFile();
880880
bumpGeneration();
881881

882882
// Add any defined macros to the bridging header lookup table.
883-
addMacrosToLookupTable(BridgingHeaderLookupTable, getNameImporter());
883+
addMacrosToLookupTable(*BridgingHeaderLookupTable, getNameImporter());
884884

885885
// Wrap all Clang imports under a Swift import decl.
886886
for (auto &Import : BridgeHeaderTopLevelImports) {
@@ -890,7 +890,7 @@ bool ClangImporter::Implementation::importHeader(
890890
}
891891

892892
// Finalize the lookup table, which may fail.
893-
finalizeLookupTable(BridgingHeaderLookupTable, getNameImporter());
893+
finalizeLookupTable(*BridgingHeaderLookupTable, getNameImporter());
894894

895895
// FIXME: What do we do if there was already an error?
896896
if (!hadError && clangDiags.hasErrorOccurred()) {
@@ -1273,7 +1273,8 @@ ClangImporter::Implementation::Implementation(ASTContext &ctx,
12731273
InferImportAsMember(opts.InferImportAsMember),
12741274
DisableSwiftBridgeAttr(opts.DisableSwiftBridgeAttr),
12751275
CurrentVersion(nameVersionFromOptions(ctx.LangOpts)),
1276-
BridgingHeaderLookupTable(nullptr), platformAvailability(ctx.LangOpts),
1276+
BridgingHeaderLookupTable(new SwiftLookupTable(nullptr)),
1277+
platformAvailability(ctx.LangOpts),
12771278
nameImporter() {}
12781279

12791280
ClangImporter::Implementation::~Implementation() {
@@ -2570,7 +2571,7 @@ SwiftLookupTable *ClangImporter::Implementation::findLookupTable(
25702571
const clang::Module *clangModule) {
25712572
// If the Clang module is null, use the bridging header lookup table.
25722573
if (!clangModule)
2573-
return &BridgingHeaderLookupTable;
2574+
return BridgingHeaderLookupTable.get();
25742575

25752576
// Submodules share lookup tables with their parents.
25762577
if (clangModule->isSubModule())
@@ -2586,7 +2587,7 @@ SwiftLookupTable *ClangImporter::Implementation::findLookupTable(
25862587
bool ClangImporter::Implementation::forEachLookupTable(
25872588
llvm::function_ref<bool(SwiftLookupTable &table)> fn) {
25882589
// Visit the bridging header's lookup table.
2589-
if (fn(BridgingHeaderLookupTable)) return true;
2590+
if (fn(*BridgingHeaderLookupTable)) return true;
25902591

25912592
// Collect and sort the set of module names.
25922593
SmallVector<StringRef, 4> moduleNames;
@@ -2804,5 +2805,5 @@ void ClangImporter::Implementation::dumpSwiftLookupTables() {
28042805
}
28052806

28062807
llvm::errs() << "<<Bridging header lookup table>>\n";
2807-
BridgingHeaderLookupTable.dump();
2808+
BridgingHeaderLookupTable->dump();
28082809
}

lib/ClangImporter/ImporterImpl.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -281,7 +281,7 @@ class LLVM_LIBRARY_VISIBILITY ClangImporter::Implementation
281281

282282
private:
283283
/// The Swift lookup table for the bridging header.
284-
SwiftLookupTable BridgingHeaderLookupTable;
284+
std::unique_ptr<SwiftLookupTable> BridgingHeaderLookupTable;
285285

286286
/// The Swift lookup tables, per module.
287287
///

0 commit comments

Comments
 (0)