refined constructors, removed destructors, got rid of unneccessary method duplication in DLObject and its subtypes

svn-id: r51845
This commit is contained in:
Tony Puccinelli 2010-08-07 22:27:23 +00:00
parent 68b986545a
commit de1e941370
8 changed files with 37 additions and 125 deletions

View file

@ -58,6 +58,30 @@ DynamicPlugin::VoidFunc ELFPlugin::findSymbol(const char *symbol) {
return tmp;
}
bool ELFPlugin::loadPlugin() {
assert(!_dlHandle);
DLObject *obj = makeDLObject();
if (obj->open(_filename.c_str())) {
_dlHandle = obj;
} else {
delete obj;
_dlHandle = NULL;
}
if (!_dlHandle) {
warning("Failed loading plugin '%s'", _filename.c_str());
return false;
}
bool ret = DynamicPlugin::loadPlugin();
if (ret && _dlHandle) {
_dlHandle->discard_symtab();
}
return ret;
};
void ELFPlugin::unloadPlugin() {
DynamicPlugin::unloadPlugin();
if (_dlHandle) {