[Scummvm-cvs-logs] SF.net SVN: scummvm:[33330] scummvm/trunk/backends/plugins/win32/ win32-provider.cpp
lordhoto at users.sourceforge.net
lordhoto at users.sourceforge.net
Sun Jul 27 13:07:39 CEST 2008
Revision: 33330
http://scummvm.svn.sourceforge.net/scummvm/?rev=33330&view=rev
Author: lordhoto
Date: 2008-07-27 11:07:38 +0000 (Sun, 27 Jul 2008)
Log Message:
-----------
Fixed win32 plugin provider.
Modified Paths:
--------------
scummvm/trunk/backends/plugins/win32/win32-provider.cpp
Modified: scummvm/trunk/backends/plugins/win32/win32-provider.cpp
===================================================================
--- scummvm/trunk/backends/plugins/win32/win32-provider.cpp 2008-07-27 10:43:15 UTC (rev 33329)
+++ scummvm/trunk/backends/plugins/win32/win32-provider.cpp 2008-07-27 11:07:38 UTC (rev 33330)
@@ -50,21 +50,14 @@
virtual VoidFunc findSymbol(const char *symbol) {
#ifndef _WIN32_WCE
- void *func = (void *)GetProcAddress((HMODULE)_dlHandle, symbol);
+ FARPROC func = GetProcAddress((HMODULE)_dlHandle, symbol);
#else
- void *func = (void *)GetProcAddress((HMODULE)_dlHandle, toUnicode(symbol));
+ FARPROC func = GetProcAddress((HMODULE)_dlHandle, toUnicode(symbol));
#endif
if (!func)
debug("Failed loading symbol '%s' from plugin '%s'", symbol, _filename.c_str());
- // FIXME HACK: This is a HACK to circumvent a clash between the ISO C++
- // standard and POSIX: ISO C++ disallows casting between function pointers
- // and data pointers, but dlsym always returns a void pointer. For details,
- // see e.g. <http://www.trilithium.com/johan/2004/12/problem-with-dlsym/>.
- assert(sizeof(VoidFunc) == sizeof(func));
- VoidFunc tmp;
- memcpy(&tmp, &func, sizeof(VoidFunc));
- return tmp;
+ return (void (*)())func;
}
public:
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list