Skip to content
This repository was archived by the owner on Nov 1, 2021. It is now read-only.

Commit cde4013

Browse files
committed
unique_ptr-ify ASTReaderListener in the ASTReader
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215317 91177308-0d34-0410-b5e6-96231b3b80d8
1 parent e46379d commit cde4013

File tree

4 files changed

+15
-14
lines changed

4 files changed

+15
-14
lines changed

Diff for: include/clang/Serialization/ASTReader.h

+9-7
Original file line numberDiff line numberDiff line change
@@ -202,8 +202,9 @@ class ChainedASTReaderListener : public ASTReaderListener {
202202

203203
public:
204204
/// Takes ownership of \p First and \p Second.
205-
ChainedASTReaderListener(ASTReaderListener *First, ASTReaderListener *Second)
206-
: First(First), Second(Second) { }
205+
ChainedASTReaderListener(std::unique_ptr<ASTReaderListener> First,
206+
std::unique_ptr<ASTReaderListener> Second)
207+
: First(std::move(First)), Second(std::move(Second)) {}
207208

208209
bool ReadFullVersionInformation(StringRef FullVersion) override;
209210
void ReadModuleName(StringRef ModuleName) override;
@@ -1371,17 +1372,18 @@ class ASTReader
13711372
bool FromFinalization);
13721373

13731374
/// \brief Set the AST callbacks listener.
1374-
void setListener(ASTReaderListener *listener) {
1375-
Listener.reset(listener);
1375+
void setListener(std::unique_ptr<ASTReaderListener> Listener) {
1376+
this->Listener = std::move(Listener);
13761377
}
13771378

13781379
/// \brief Add an AST callbak listener.
13791380
///
13801381
/// Takes ownership of \p L.
1381-
void addListener(ASTReaderListener *L) {
1382+
void addListener(std::unique_ptr<ASTReaderListener> L) {
13821383
if (Listener)
1383-
L = new ChainedASTReaderListener(L, Listener.release());
1384-
Listener.reset(L);
1384+
L = llvm::make_unique<ChainedASTReaderListener>(std::move(L),
1385+
std::move(Listener));
1386+
Listener = std::move(L);
13851387
}
13861388

13871389
/// \brief Set the AST deserialization listener.

Diff for: lib/Frontend/ASTUnit.cpp

+3-4
Original file line numberDiff line numberDiff line change
@@ -728,10 +728,9 @@ ASTUnit *ASTUnit::LoadFromASTFile(const std::string &Filename,
728728
/*DisableValidation=*/disableValid,
729729
AllowPCHWithCompilerErrors);
730730

731-
AST->Reader->setListener(new ASTInfoCollector(*AST->PP, Context,
732-
AST->ASTFileLangOpts,
733-
AST->TargetOpts, AST->Target,
734-
Counter));
731+
AST->Reader->setListener(llvm::make_unique<ASTInfoCollector>(
732+
*AST->PP, Context, AST->ASTFileLangOpts, AST->TargetOpts, AST->Target,
733+
Counter));
735734

736735
switch (AST->Reader->ReadAST(Filename, serialization::MK_MainFile,
737736
SourceLocation(), ASTReader::ARR_None)) {

Diff for: lib/Frontend/DependencyFile.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ void DependencyCollector::attachToPreprocessor(Preprocessor &PP) {
124124
PP.addPPCallbacks(new DepCollectorPPCallbacks(*this, PP.getSourceManager()));
125125
}
126126
void DependencyCollector::attachToASTReader(ASTReader &R) {
127-
R.addListener(new DepCollectorASTListener(*this));
127+
R.addListener(llvm::make_unique<DepCollectorASTListener>(*this));
128128
}
129129

130130
namespace {
@@ -210,7 +210,7 @@ DependencyFileGenerator *DependencyFileGenerator::CreateAndAttachToPreprocessor(
210210
void DependencyFileGenerator::AttachToASTReader(ASTReader &R) {
211211
DFGImpl *I = reinterpret_cast<DFGImpl *>(Impl);
212212
assert(I && "missing implementation");
213-
R.addListener(new DFGASTReaderListener(*I));
213+
R.addListener(llvm::make_unique<DFGASTReaderListener>(*I));
214214
}
215215

216216
/// FileMatchesDepCriteria - Determine whether the given Filename should be

Diff for: lib/Frontend/ModuleDependencyCollector.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ class ModuleDependencyListener : public ASTReaderListener {
3838
}
3939

4040
void ModuleDependencyCollector::attachToASTReader(ASTReader &R) {
41-
R.addListener(new ModuleDependencyListener(*this));
41+
R.addListener(llvm::make_unique<ModuleDependencyListener>(*this));
4242
}
4343

4444
void ModuleDependencyCollector::writeFileMap() {

0 commit comments

Comments
 (0)