[Modules] Wrap the main ModuleManager visitor in a function_ref.

Avoids the awkward passing of an opaque void *UserData argument. No
functional change intended.

llvm-svn: 243213
This commit is contained in:
Benjamin Kramer
2015-07-25 12:14:04 +00:00
parent 20dc35aff6
commit 9a9efbafa7
5 changed files with 86 additions and 126 deletions

View File

@@ -313,10 +313,8 @@ ModuleManager::~ModuleManager() {
delete FirstVisitState;
}
void
ModuleManager::visit(bool (*Visitor)(ModuleFile &M, void *UserData),
void *UserData,
llvm::SmallPtrSetImpl<ModuleFile *> *ModuleFilesHit) {
void ModuleManager::visit(llvm::function_ref<bool(ModuleFile &M)> Visitor,
llvm::SmallPtrSetImpl<ModuleFile *> *ModuleFilesHit) {
// If the visitation order vector is the wrong size, recompute the order.
if (VisitOrder.size() != Chain.size()) {
unsigned N = size();
@@ -388,7 +386,7 @@ ModuleManager::visit(bool (*Visitor)(ModuleFile &M, void *UserData),
// Visit the module.
assert(State->VisitNumber[CurrentModule->Index] == VisitNumber - 1);
State->VisitNumber[CurrentModule->Index] = VisitNumber;
if (!Visitor(*CurrentModule, UserData))
if (!Visitor(*CurrentModule))
continue;
// The visitor has requested that cut off visitation of any