@@ -754,7 +754,7 @@ ClangImporter::create(ASTContext &ctx,
754
754
importer->Impl .addBridgeHeaderTopLevelDecls (D);
755
755
756
756
if (auto named = dyn_cast<clang::NamedDecl>(D)) {
757
- addEntryToLookupTable (importer->Impl .BridgingHeaderLookupTable , named,
757
+ addEntryToLookupTable (* importer->Impl .BridgingHeaderLookupTable , named,
758
758
*importer->Impl .nameImporter );
759
759
}
760
760
}
@@ -873,14 +873,14 @@ bool ClangImporter::Implementation::importHeader(
873
873
for (auto group : allParsedDecls)
874
874
for (auto *D : group)
875
875
if (auto named = dyn_cast<clang::NamedDecl>(D))
876
- addEntryToLookupTable (BridgingHeaderLookupTable, named,
876
+ addEntryToLookupTable (* BridgingHeaderLookupTable, named,
877
877
getNameImporter ());
878
878
879
879
pp.EndSourceFile ();
880
880
bumpGeneration ();
881
881
882
882
// Add any defined macros to the bridging header lookup table.
883
- addMacrosToLookupTable (BridgingHeaderLookupTable, getNameImporter ());
883
+ addMacrosToLookupTable (* BridgingHeaderLookupTable, getNameImporter ());
884
884
885
885
// Wrap all Clang imports under a Swift import decl.
886
886
for (auto &Import : BridgeHeaderTopLevelImports) {
@@ -890,7 +890,7 @@ bool ClangImporter::Implementation::importHeader(
890
890
}
891
891
892
892
// Finalize the lookup table, which may fail.
893
- finalizeLookupTable (BridgingHeaderLookupTable, getNameImporter ());
893
+ finalizeLookupTable (* BridgingHeaderLookupTable, getNameImporter ());
894
894
895
895
// FIXME: What do we do if there was already an error?
896
896
if (!hadError && clangDiags.hasErrorOccurred ()) {
@@ -1273,7 +1273,8 @@ ClangImporter::Implementation::Implementation(ASTContext &ctx,
1273
1273
InferImportAsMember(opts.InferImportAsMember),
1274
1274
DisableSwiftBridgeAttr(opts.DisableSwiftBridgeAttr),
1275
1275
CurrentVersion(nameVersionFromOptions(ctx.LangOpts)),
1276
- BridgingHeaderLookupTable(nullptr ), platformAvailability(ctx.LangOpts),
1276
+ BridgingHeaderLookupTable(new SwiftLookupTable(nullptr )),
1277
+ platformAvailability(ctx.LangOpts),
1277
1278
nameImporter() {}
1278
1279
1279
1280
ClangImporter::Implementation::~Implementation () {
@@ -2570,7 +2571,7 @@ SwiftLookupTable *ClangImporter::Implementation::findLookupTable(
2570
2571
const clang::Module *clangModule) {
2571
2572
// If the Clang module is null, use the bridging header lookup table.
2572
2573
if (!clangModule)
2573
- return & BridgingHeaderLookupTable;
2574
+ return BridgingHeaderLookupTable. get () ;
2574
2575
2575
2576
// Submodules share lookup tables with their parents.
2576
2577
if (clangModule->isSubModule ())
@@ -2586,7 +2587,7 @@ SwiftLookupTable *ClangImporter::Implementation::findLookupTable(
2586
2587
bool ClangImporter::Implementation::forEachLookupTable (
2587
2588
llvm::function_ref<bool (SwiftLookupTable &table)> fn) {
2588
2589
// Visit the bridging header's lookup table.
2589
- if (fn (BridgingHeaderLookupTable)) return true ;
2590
+ if (fn (* BridgingHeaderLookupTable)) return true ;
2590
2591
2591
2592
// Collect and sort the set of module names.
2592
2593
SmallVector<StringRef, 4 > moduleNames;
@@ -2804,5 +2805,5 @@ void ClangImporter::Implementation::dumpSwiftLookupTables() {
2804
2805
}
2805
2806
2806
2807
llvm::errs () << " <<Bridging header lookup table>>\n " ;
2807
- BridgingHeaderLookupTable. dump ();
2808
+ BridgingHeaderLookupTable-> dump ();
2808
2809
}
0 commit comments