From 49cfded60bb5b444d1828190eacc52bbb49a9cb8 Mon Sep 17 00:00:00 2001 From: bushing Date: Mon, 8 Dec 2008 05:30:24 +0000 Subject: set svn:eol-style=native for **.cpp git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@1442 8ced0084-cf51-0410-be5f-012b33b47a6e --- Source/Core/Common/Src/DynamicLibrary.cpp | 302 +++++++++++++++--------------- 1 file changed, 151 insertions(+), 151 deletions(-) (limited to 'Source/Core/Common/Src/DynamicLibrary.cpp') diff --git a/Source/Core/Common/Src/DynamicLibrary.cpp b/Source/Core/Common/Src/DynamicLibrary.cpp index 70ffe82347..2010966e07 100644 --- a/Source/Core/Common/Src/DynamicLibrary.cpp +++ b/Source/Core/Common/Src/DynamicLibrary.cpp @@ -1,151 +1,151 @@ -// Copyright (C) 2003-2008 Dolphin Project. - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, version 2.0. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License 2.0 for more details. - -// A copy of the GPL 2.0 should have been included with the program. -// If not, see http://www.gnu.org/licenses/ - -// Official SVN repository and contact information can be found at -// http://code.google.com/p/dolphin-emu/ - -#include -#ifdef _WIN32 -#include -#else -#include -#include -#endif - -#include "Common.h" -#include "StringUtil.h" -#include "DynamicLibrary.h" -#include "../../Core/Src/PowerPC/PowerPC.h" - -DynamicLibrary::DynamicLibrary() -{ - library = 0; -} - -#ifdef _WIN32 -std::string GetLastErrorAsString() -{ - LPVOID lpMsgBuf = 0; - DWORD error = GetLastError(); - FormatMessage( - FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, - NULL, - error, - MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language - (LPTSTR) &lpMsgBuf, - 0, NULL); - std::string s; - if (lpMsgBuf) - { - s = ((char *)lpMsgBuf); - LocalFree(lpMsgBuf); - } else { - s = StringFromFormat("(unknown error %08x)", error); - } - return s; -} -#endif - -// ------------------------------------------------------------------ -/* Loading means loading the dll with LoadLibrary() to get an instance to the dll. - This is done when Dolphin is started to determine which dlls are good, and - before opening the Config and Debugging windowses from Plugin.cpp and - before opening the dll for running the emulation in Video_...cpp in Core. */ -// ----------------------- -int DynamicLibrary::Load(const char* filename) -{ - if (!filename || strlen(filename) == 0) - { - LOG(MASTER_LOG, "Missing filename of dynamic library to load"); - return 0; - } - LOG(MASTER_LOG, "Trying to load library %s", filename); - - if (IsLoaded()) - { - LOG(MASTER_LOG, "Trying to load already loaded library %s", filename); - return 2; - } - -#ifdef _WIN32 - library = LoadLibrary(filename); - if (!library) { - LOG(MASTER_LOG, "Error loading DLL %s: %s", filename, GetLastErrorAsString().c_str()); - return 0; - } -#else - library = dlopen(filename, RTLD_NOW | RTLD_LOCAL); - if (!library) - { - #ifdef LOGGING - LOG(MASTER_LOG, "Error loading DLL %s: %s", filename, dlerror()); - #else - printf("Error loading DLL %s: %s", filename, dlerror()); - #endif - return false; - } -#endif - library_file = filename; - return 1; -} - - -void DynamicLibrary::Unload() -{ - if (!IsLoaded()) - { - PanicAlert("Trying to unload non-loaded library"); - return; - } - -#ifdef _WIN32 - /* TEMPORARY SOLUTION: To prevent that Dolphin hangs when a game is stopped - or when we try to close Dolphin. It's possible that it only occur when we render - to the main window. And sometimes FreeLibrary works without any problem, so - don't remove this just because it doesn't hang once. I could not find the - actual cause of it. */ - if( ! (library_file.find("OGL.") != std::string::npos) && !PowerPC::CPU_POWERDOWN) - FreeLibrary(library); -#else - dlclose(library); -#endif - library = 0; -} - - -void* DynamicLibrary::Get(const char* funcname) const -{ - void* retval; -#ifdef _WIN32 - if (!library) - { - PanicAlert("Can't find function %s - Library not loaded."); - } - retval = GetProcAddress(library, funcname); - //if (!retval) - //{ - // PanicAlert("Did not find function %s in library %s.", funcname, library_file.c_str()); - //} -#else - retval = dlsym(library, funcname); - - if (!retval) - { - printf("Symbol %s missing in %s (error: %s)\n", funcname, library_file.c_str(), dlerror()); - } -#endif - return retval; -} - - +// Copyright (C) 2003-2008 Dolphin Project. + +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, version 2.0. + +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License 2.0 for more details. + +// A copy of the GPL 2.0 should have been included with the program. +// If not, see http://www.gnu.org/licenses/ + +// Official SVN repository and contact information can be found at +// http://code.google.com/p/dolphin-emu/ + +#include +#ifdef _WIN32 +#include +#else +#include +#include +#endif + +#include "Common.h" +#include "StringUtil.h" +#include "DynamicLibrary.h" +#include "../../Core/Src/PowerPC/PowerPC.h" + +DynamicLibrary::DynamicLibrary() +{ + library = 0; +} + +#ifdef _WIN32 +std::string GetLastErrorAsString() +{ + LPVOID lpMsgBuf = 0; + DWORD error = GetLastError(); + FormatMessage( + FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, + NULL, + error, + MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language + (LPTSTR) &lpMsgBuf, + 0, NULL); + std::string s; + if (lpMsgBuf) + { + s = ((char *)lpMsgBuf); + LocalFree(lpMsgBuf); + } else { + s = StringFromFormat("(unknown error %08x)", error); + } + return s; +} +#endif + +// ------------------------------------------------------------------ +/* Loading means loading the dll with LoadLibrary() to get an instance to the dll. + This is done when Dolphin is started to determine which dlls are good, and + before opening the Config and Debugging windowses from Plugin.cpp and + before opening the dll for running the emulation in Video_...cpp in Core. */ +// ----------------------- +int DynamicLibrary::Load(const char* filename) +{ + if (!filename || strlen(filename) == 0) + { + LOG(MASTER_LOG, "Missing filename of dynamic library to load"); + return 0; + } + LOG(MASTER_LOG, "Trying to load library %s", filename); + + if (IsLoaded()) + { + LOG(MASTER_LOG, "Trying to load already loaded library %s", filename); + return 2; + } + +#ifdef _WIN32 + library = LoadLibrary(filename); + if (!library) { + LOG(MASTER_LOG, "Error loading DLL %s: %s", filename, GetLastErrorAsString().c_str()); + return 0; + } +#else + library = dlopen(filename, RTLD_NOW | RTLD_LOCAL); + if (!library) + { + #ifdef LOGGING + LOG(MASTER_LOG, "Error loading DLL %s: %s", filename, dlerror()); + #else + printf("Error loading DLL %s: %s", filename, dlerror()); + #endif + return false; + } +#endif + library_file = filename; + return 1; +} + + +void DynamicLibrary::Unload() +{ + if (!IsLoaded()) + { + PanicAlert("Trying to unload non-loaded library"); + return; + } + +#ifdef _WIN32 + /* TEMPORARY SOLUTION: To prevent that Dolphin hangs when a game is stopped + or when we try to close Dolphin. It's possible that it only occur when we render + to the main window. And sometimes FreeLibrary works without any problem, so + don't remove this just because it doesn't hang once. I could not find the + actual cause of it. */ + if( ! (library_file.find("OGL.") != std::string::npos) && !PowerPC::CPU_POWERDOWN) + FreeLibrary(library); +#else + dlclose(library); +#endif + library = 0; +} + + +void* DynamicLibrary::Get(const char* funcname) const +{ + void* retval; +#ifdef _WIN32 + if (!library) + { + PanicAlert("Can't find function %s - Library not loaded."); + } + retval = GetProcAddress(library, funcname); + //if (!retval) + //{ + // PanicAlert("Did not find function %s in library %s.", funcname, library_file.c_str()); + //} +#else + retval = dlsym(library, funcname); + + if (!retval) + { + printf("Symbol %s missing in %s (error: %s)\n", funcname, library_file.c_str(), dlerror()); + } +#endif + return retval; +} + + -- cgit v1.2.3