]> git.ipfire.org Git - thirdparty/strongswan.git/commitdiff
backtrace: Use GetModuleInformation/GetModuleFileNameEx directly on Win32
authorMartin Willi <martin@revosec.ch>
Thu, 5 Jun 2014 11:12:38 +0000 (13:12 +0200)
committerMartin Willi <martin@revosec.ch>
Fri, 6 Jun 2014 14:28:28 +0000 (16:28 +0200)
The K32 variants are actually needed on 64-bit only.

src/libstrongswan/utils/backtrace.c

index 3bb16354541b7cf08b053402f0307f30914053bb..65e74160b4c4f6d2d35b039bbc9bf059dcd7f384 100644 (file)
 #ifdef WIN32
 # include <psapi.h>
 /* missing in MinGW */
+#ifdef WIN64
+#ifndef GetModuleInformation
 WINBOOL K32GetModuleInformation(HANDLE hProcess, HMODULE hModule,
                                                                LPMODULEINFO lpmodinfo, DWORD cb);
+#define GetModuleInformation K32GetModuleInformation
+#endif /* !GetModuleInformation */
+#ifndef GetModuleFileNameEx
 DWORD K32GetModuleFileNameExA(HANDLE hProcess, HMODULE hModule,
                                                          LPTSTR lpFilename, DWORD nSize);
+#define GetModuleFileNameEx K32GetModuleFileNameExA
+#endif /* !GetModuleFileNameEx */
+#endif /* WIN64 */
 #endif
 
 typedef struct private_backtrace_t private_backtrace_t;
@@ -525,9 +533,9 @@ METHOD(backtrace_t, log_, void,
 
                if (GetModuleHandleEx(GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS,
                                                this->frames[i], &module) &&
-                       K32GetModuleInformation(GetCurrentProcess(), module,
+                       GetModuleInformation(GetCurrentProcess(), module,
                                                &info, sizeof(info)) &&
-                       K32GetModuleFileNameExA(GetCurrentProcess(), module,
+                       GetModuleFileNameEx(GetCurrentProcess(), module,
                                                filename, sizeof(filename)))
                {
                        println(file, "  %s%s%s @ %p [%p]",