diff options
Diffstat (limited to 'src/lj_clib.c')
-rw-r--r-- | src/lj_clib.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/lj_clib.c b/src/lj_clib.c index ff71346a..68398cf5 100644 --- a/src/lj_clib.c +++ b/src/lj_clib.c | |||
@@ -134,6 +134,7 @@ static void *clib_getsym(CLibrary *cl, const char *name) | |||
134 | 134 | ||
135 | #ifndef GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS | 135 | #ifndef GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS |
136 | #define GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS 4 | 136 | #define GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS 4 |
137 | #define GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT 2 | ||
137 | BOOL WINAPI GetModuleHandleExA(DWORD, LPCSTR, HMODULE*); | 138 | BOOL WINAPI GetModuleHandleExA(DWORD, LPCSTR, HMODULE*); |
138 | #endif | 139 | #endif |
139 | 140 | ||
@@ -217,13 +218,13 @@ static void *clib_getsym(CLibrary *cl, const char *name) | |||
217 | HINSTANCE h = (HINSTANCE)clib_def_handle[i]; | 218 | HINSTANCE h = (HINSTANCE)clib_def_handle[i]; |
218 | if (!(void *)h) { /* Resolve default library handles (once). */ | 219 | if (!(void *)h) { /* Resolve default library handles (once). */ |
219 | switch (i) { | 220 | switch (i) { |
220 | case CLIB_HANDLE_EXE: GetModuleHandleExA(0, NULL, &h); break; | 221 | case CLIB_HANDLE_EXE: GetModuleHandleExA(GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT, NULL, &h); break; |
221 | case CLIB_HANDLE_DLL: | 222 | case CLIB_HANDLE_DLL: |
222 | GetModuleHandleExA(GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS, | 223 | GetModuleHandleExA(GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS|GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT, |
223 | (const char *)clib_def_handle, &h); | 224 | (const char *)clib_def_handle, &h); |
224 | break; | 225 | break; |
225 | case CLIB_HANDLE_CRT: | 226 | case CLIB_HANDLE_CRT: |
226 | GetModuleHandleExA(GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS, | 227 | GetModuleHandleExA(GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS|GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT, |
227 | (const char *)&_fmode, &h); | 228 | (const char *)&_fmode, &h); |
228 | break; | 229 | break; |
229 | case CLIB_HANDLE_KERNEL32: h = LoadLibraryA("kernel32.dll"); break; | 230 | case CLIB_HANDLE_KERNEL32: h = LoadLibraryA("kernel32.dll"); break; |