Accept Handler objects in parameters as references.
Reinforces that they shouldn't be null and it's a bit more natural when
they are passed as stack objects.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77526 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Index/Indexer.cpp b/lib/Index/Indexer.cpp
index 03fa80f..9a49496 100644
--- a/lib/Index/Indexer.cpp
+++ b/lib/Index/Indexer.cpp
@@ -39,11 +39,11 @@
void Indexer::IndexAST(TranslationUnit *TU) {
EntityIndexer Idx(TU, Map);
- Prog.FindEntities(TU->getASTContext(), &Idx);
+ Prog.FindEntities(TU->getASTContext(), Idx);
}
void Indexer::GetTranslationUnitsFor(Entity Ent,
- TranslationUnitHandler *Handler) {
+ TranslationUnitHandler &Handler) {
assert(Ent.isValid() && "Expected valid Entity");
assert(!Ent.isInternalToTU() &&
"Expected an Entity visible outside of its translation unit");
@@ -54,7 +54,7 @@
TUSetTy &Set = I->second;
for (TUSetTy::iterator I = Set.begin(), E = Set.end(); I != E; ++I)
- Handler->Handle(*I);
+ Handler.Handle(*I);
}
static Indexer::TUSetTy EmptySet;
diff --git a/lib/Index/Program.cpp b/lib/Index/Program.cpp
index a6bb96c..4efad2c 100644
--- a/lib/Index/Program.cpp
+++ b/lib/Index/Program.cpp
@@ -30,20 +30,21 @@
delete static_cast<ProgramImpl *>(Impl);
}
-static void FindEntitiesInDC(DeclContext *DC, Program &Prog, EntityHandler *Handler) {
+static void FindEntitiesInDC(DeclContext *DC, Program &Prog,
+ EntityHandler &Handler) {
for (DeclContext::decl_iterator
I = DC->decls_begin(), E = DC->decls_end(); I != E; ++I) {
if (I->getLocation().isInvalid())
continue;
Entity Ent = Entity::get(*I, Prog);
if (Ent.isValid())
- Handler->Handle(Ent);
+ Handler.Handle(Ent);
if (DeclContext *SubDC = dyn_cast<DeclContext>(*I))
FindEntitiesInDC(SubDC, Prog, Handler);
}
}
/// \brief Traverses the AST and passes all the entities to the Handler.
-void Program::FindEntities(ASTContext &Ctx, EntityHandler *Handler) {
+void Program::FindEntities(ASTContext &Ctx, EntityHandler &Handler) {
FindEntitiesInDC(Ctx.getTranslationUnitDecl(), *this, Handler);
}