summaryrefslogtreecommitdiff
path: root/Source/Core/Common/Src/DynamicLibrary.cpp
diff options
context:
space:
mode:
authorMaarten ter Huurne <maarten@treewalker.org>2008-08-13 12:22:35 +0000
committerMaarten ter Huurne <maarten@treewalker.org>2008-08-13 12:22:35 +0000
commit8900114c2b24da748c7994c03d44c206499cb4bb (patch)
tree2c2ac8fcede27ddf8740253adb2d3fc9e4368095 /Source/Core/Common/Src/DynamicLibrary.cpp
parent34d6e8ad62c4bb90d8d4662028c3cf4a38ad9bc6 (diff)
If dynamic library loading fails, log and return false instead of panicing. Also fixed bug in Get() where "retval" was not actually returned on non-Windows platforms.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@190 8ced0084-cf51-0410-be5f-012b33b47a6e
Diffstat (limited to 'Source/Core/Common/Src/DynamicLibrary.cpp')
-rw-r--r--Source/Core/Common/Src/DynamicLibrary.cpp30
1 files changed, 14 insertions, 16 deletions
diff --git a/Source/Core/Common/Src/DynamicLibrary.cpp b/Source/Core/Common/Src/DynamicLibrary.cpp
index 407dcc494b..00096b89b8 100644
--- a/Source/Core/Common/Src/DynamicLibrary.cpp
+++ b/Source/Core/Common/Src/DynamicLibrary.cpp
@@ -58,35 +58,35 @@ std::string GetLastErrorAsString()
bool DynamicLibrary::Load(const char* filename)
{
- if (strlen(filename) == 0)
- {
- PanicAlert("DynamicLibrary : Missing filename");
- return(false);
+ if (!filename || strlen(filename) == 0)
+ {
+ LOG(MASTER_LOG, "Missing filename of dynamic library to load");
+ return false;
}
+ LOG(MASTER_LOG, "Trying to load library %s", filename);
if (IsLoaded())
{
- PanicAlert("Trying to load already loaded library %s", filename);
- return(false);
+ LOG(MASTER_LOG, "Trying to load already loaded library %s", filename);
+ return false;
}
#ifdef _WIN32
library = LoadLibrary(filename);
if (!library) {
- //PanicAlert("Error loading DLL %s: %s", filename, GetLastErrorAsString().c_str());
+ LOG(MASTER_LOG, "Error loading DLL %s: %s", filename, GetLastErrorAsString().c_str());
+ return false;
}
#else
library = dlopen(filename, RTLD_NOW | RTLD_LOCAL);
-
if (!library)
{
- PanicAlert(dlerror());
+ LOG(MASTER_LOG, "Error loading DLL %s: %s", filename, dlerror());
+ return false;
}
#endif
- if (library) {
- library_file = filename;
- }
- return library != 0;
+ library_file = filename;
+ return true;
}
@@ -120,9 +120,6 @@ void* DynamicLibrary::Get(const char* funcname) const
//{
//PanicAlert("Did not find function %s in library %s.", funcname, library_file.c_str());
//}
-
- return retval;
-
#else
retval = dlsym(library, funcname);
@@ -131,6 +128,7 @@ void* DynamicLibrary::Get(const char* funcname) const
printf("Symbol %s missing in %s (error: %s)\n", funcname, library_file.c_str(), dlerror());
}
#endif
+ return retval;
}