Skip to content

Commit 08ad95b

Browse files
committed
Swift: switch to references instead of pointers
1 parent 343ba5f commit 08ad95b

File tree

2 files changed

+7
-7
lines changed

2 files changed

+7
-7
lines changed

swift/extractor/SwiftDispatcher.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ class SwiftDispatcher {
2424
TrapArena& arena,
2525
TrapOutput& trap,
2626
SwiftExtractionMode extractionMode,
27-
swift::ModuleDecl* currentModule,
27+
swift::ModuleDecl& currentModule,
2828
llvm::StringRef currentFileName)
2929
: sourceManager{sourceManager},
3030
arena{arena},
@@ -143,15 +143,15 @@ class SwiftDispatcher {
143143
bool shouldEmitDeclBody(swift::Decl* decl) {
144144
switch (extractionMode) {
145145
case SwiftExtractionMode::Module: {
146-
return currentModule == decl->getModuleContext();
146+
return &currentModule == decl->getModuleContext();
147147
} break;
148148
case SwiftExtractionMode::PrimaryFile: {
149149
swift::SourceLoc location = decl->getStartLoc();
150150
if (!location.isValid()) {
151151
return false;
152152
}
153153
auto declFileName = sourceManager.getDisplayNameForLoc(location).str();
154-
return currentModule == decl->getModuleContext() && declFileName == currentFileName;
154+
return &currentModule == decl->getModuleContext() && declFileName == currentFileName;
155155
} break;
156156
default:
157157
return false;
@@ -239,7 +239,7 @@ class SwiftDispatcher {
239239
Store store;
240240
Store::Handle waitingForNewLabel{std::monostate{}};
241241
SwiftExtractionMode extractionMode;
242-
swift::ModuleDecl* currentModule;
242+
swift::ModuleDecl& currentModule;
243243
llvm::StringRef currentFileName;
244244
};
245245

swift/extractor/SwiftExtractor.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ static void archiveFile(const SwiftExtractorConfiguration& config, swift::Source
5252
static void extractDeclarations(const SwiftExtractorConfiguration& config,
5353
swift::CompilerInstance& compiler,
5454
SwiftExtractionMode extractionMode,
55-
swift::ModuleDecl* module,
55+
swift::ModuleDecl& module,
5656
llvm::StringRef fileName,
5757
llvm::ArrayRef<swift::Decl*> topLevelDecls) {
5858
// The extractor can be called several times from different processes with
@@ -133,14 +133,14 @@ void codeql::extractSwiftFiles(const SwiftExtractorConfiguration& config,
133133
llvm::SmallVector<swift::Decl*> decls;
134134
module->getTopLevelDecls(decls);
135135
// TODO: pass ModuleDecl directly when we have module extraction in place?
136-
extractDeclarations(config, compiler, SwiftExtractionMode::Module, module,
136+
extractDeclarations(config, compiler, SwiftExtractionMode::Module, *module,
137137
module->getModuleFilename(), decls);
138138
} else {
139139
// The extraction will only work if one (or more) `-primary-file` CLI option is provided,
140140
// which is what always happens in case of `swift build` and `xcodebuild`
141141
for (auto primaryFile : module->getPrimarySourceFiles()) {
142142
archiveFile(config, *primaryFile);
143-
extractDeclarations(config, compiler, SwiftExtractionMode::PrimaryFile, module,
143+
extractDeclarations(config, compiler, SwiftExtractionMode::PrimaryFile, *module,
144144
primaryFile->getFilename(), primaryFile->getTopLevelDecls());
145145
}
146146
}

0 commit comments

Comments
 (0)