Daniel Lehman : msvcp140: Add __crtFreeLibraryWhenCallbackReturns.

Alexandre Julliard julliard at winehq.org
Mon Apr 3 14:01:47 CDT 2017


Module: wine
Branch: master
Commit: e54654ef3f00a49d31e04e1674ade03f412fb718
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=e54654ef3f00a49d31e04e1674ade03f412fb718

Author: Daniel Lehman <dlehman at esri.com>
Date:   Fri Mar 31 17:10:26 2017 -0700

msvcp140: Add __crtFreeLibraryWhenCallbackReturns.

Signed-off-by: Daniel Lehman <dlehman at esri.com>
Signed-off-by: Piotr Caban <piotr at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 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 at std@@YAHAAUonce_flag at 1@P6GHPAX1PAPAX at Z1@Z */
 /* ?_Execute_once at std@@YAHAEAUonce_flag at 1@P6AHPEAX1PEAPEAX at 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);




More information about the wine-cvs mailing list