From: Martin Willi Date: Thu, 5 Jun 2014 11:12:38 +0000 (+0200) Subject: backtrace: Use GetModuleInformation/GetModuleFileNameEx directly on Win32 X-Git-Tag: 5.2.0dr6~13^2~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8c2c63e09d03192bda83227946a64a2bba791573;p=thirdparty%2Fstrongswan.git backtrace: Use GetModuleInformation/GetModuleFileNameEx directly on Win32 The K32 variants are actually needed on 64-bit only. --- diff --git a/src/libstrongswan/utils/backtrace.c b/src/libstrongswan/utils/backtrace.c index 3bb1635454..65e74160b4 100644 --- a/src/libstrongswan/utils/backtrace.c +++ b/src/libstrongswan/utils/backtrace.c @@ -33,10 +33,18 @@ #ifdef WIN32 # include /* 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]",