From 23d0e4cb4058507081af78a70b5c3eefcd0841f3 Mon Sep 17 00:00:00 2001 From: Daniel Lehman Date: Fri, 31 Mar 2017 17:10:26 -0700 Subject: [PATCH 4/7] msvcp140: Add __crtFreeLibraryWhenCallbackReturns Signed-off-by: Daniel Lehman --- dlls/msvcp140/msvcp140.spec | 2 +- dlls/msvcp90/misc.c | 9 +++++++++ include/winbase.h | 1 + 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/dlls/msvcp140/msvcp140.spec b/dlls/msvcp140/msvcp140.spec index c32514a..81a3902 100644 --- a/dlls/msvcp140/msvcp140.spec +++ b/dlls/msvcp140/msvcp140.spec @@ -3763,7 +3763,7 @@ @ cdecl __crtCreateThreadpoolTimer(ptr ptr ptr) MSVCP__crtCreateThreadpoolTimer @ cdecl __crtCreateThreadpoolWait(ptr ptr ptr) MSVCP__crtCreateThreadpoolWait @ stub __crtFlushProcessWriteBuffers -@ stub __crtFreeLibraryWhenCallbackReturns +@ cdecl __crtFreeLibraryWhenCallbackReturns(ptr ptr) MSVCP__crtFreeLibraryWhenCallbackReturns @ stub __crtGetCurrentProcessorNumber @ stub __crtGetFileInformationByHandleEx @ stub __crtGetLocaleInfoEx diff --git a/dlls/msvcp90/misc.c b/dlls/msvcp90/misc.c index 7b97b5c..b358656 100644 --- a/dlls/msvcp90/misc.c +++ b/dlls/msvcp90/misc.c @@ -1332,6 +1332,15 @@ VOID CDECL MSVCP__crtSetThreadpoolWait(TP_WAIT *wait, HANDLE handle, FILETIME *d return SetThreadpoolWait(wait, handle, due_time); } +/********************************************************************* + * __crtFreeLibraryWhenCallbackReturns (MSVCP140.@) + */ +VOID CDECL MSVCP__crtFreeLibraryWhenCallbackReturns(PTP_CALLBACK_INSTANCE instance, HMODULE mod) +{ + TRACE("(%p %p)\n", instance, mod); + FreeLibraryWhenCallbackReturns(instance, mod); +} + /* ?_Execute_once@std@@YAHAAUonce_flag@1@P6GHPAX1PAPAX@Z1@Z */ /* ?_Execute_once@std@@YAHAEAUonce_flag@1@P6AHPEAX1PEAPEAX@Z1@Z */ BOOL __cdecl _Execute_once(INIT_ONCE *flag, PINIT_ONCE_FN func, void *param) diff --git a/include/winbase.h b/include/winbase.h index 25e5077..b7f86a2 100644 --- a/include/winbase.h +++ b/include/winbase.h @@ -1994,6 +1994,7 @@ WINBASEAPI BOOL WINAPI FreeEnvironmentStringsW(LPWSTR); #define FreeEnvironmentStrings WINELIB_NAME_AW(FreeEnvironmentStrings) WINBASEAPI BOOL WINAPI FreeLibrary(HMODULE); WINBASEAPI VOID DECLSPEC_NORETURN WINAPI FreeLibraryAndExitThread(HINSTANCE,DWORD); +WINBASEAPI VOID WINAPI FreeLibraryWhenCallbackReturns(PTP_CALLBACK_INSTANCE,HMODULE); #define FreeModule(handle) FreeLibrary(handle) #define FreeProcInstance(proc) /*nothing*/ WINBASEAPI BOOL WINAPI FreeResource(HGLOBAL); -- 1.9.5