Add removeModuleProvider()

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43002 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Devang Patel 2007-10-15 19:56:32 +00:00
parent f656b985ec
commit 73d0e211a3
2 changed files with 20 additions and 1 deletions

View File

@ -97,7 +97,11 @@ public:
void addModuleProvider(ModuleProvider *P) {
Modules.push_back(P);
}
/// removeModuleProvider - Remove a ModuleProvider from the list of modules.
/// Release module from ModuleProvider.
Module* removeModuleProvider(ModuleProvider *P, std::string *ErrInfo = 0);
/// FindFunctionNamed - Search all of the active modules to find the one that
/// defines FnName. This is very slow operation and shouldn't be used for
/// general code.

View File

@ -51,6 +51,21 @@ ExecutionEngine::~ExecutionEngine() {
delete Modules[i];
}
/// removeModuleProvider - Remove a ModuleProvider from the list of modules.
/// Release module from ModuleProvider.
Module* ExecutionEngine::removeModuleProvider(ModuleProvider *P,
std::string *ErrInfo) {
for(SmallVector<ModuleProvider *, 1>::iterator I = Modules.begin(),
E = Modules.end(); I != E; ++I) {
ModuleProvider *MP = *I;
if (MP == P) {
Modules.erase(I);
return MP->releaseModule(ErrInfo);
}
}
return NULL;
}
/// FindFunctionNamed - Search all of the active modules to find the one that
/// defines FnName. This is very slow operation and shouldn't be used for
/// general code.