Module: wine Branch: master Commit: 21bfa0812eb45fe1ca048ace0e63d5b7071bf2f8 URL: http://source.winehq.org/git/wine.git/?a=commit;h=21bfa0812eb45fe1ca048ace0e...
Author: Alexandre Julliard julliard@winehq.org Date: Tue Apr 30 17:25:29 2013 +0200
odbc32: Don't unload external libraries on process shutdown.
---
dlls/odbc32/proxyodbc.c | 32 +++++++++----------------------- 1 files changed, 9 insertions(+), 23 deletions(-)
diff --git a/dlls/odbc32/proxyodbc.c b/dlls/odbc32/proxyodbc.c index c7a5038..85b3dfe 100644 --- a/dlls/odbc32/proxyodbc.c +++ b/dlls/odbc32/proxyodbc.c @@ -465,39 +465,25 @@ static void ODBC_ReplicateToRegistry (void)
/*********************************************************************** * DllMain [Internal] Initializes the internal 'ODBC32.DLL'. - * - * PARAMS - * hinstDLL [I] handle to the DLL's instance - * fdwReason [I] - * lpvReserved [I] reserved, must be NULL - * - * RETURNS - * Success: TRUE - * Failure: FALSE */ - -BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) +BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD reason, LPVOID reserved) { - TRACE("Initializing or Finalizing proxy ODBC: %p,%x,%p\n", hinstDLL, fdwReason, lpvReserved); + TRACE("proxy ODBC: %p,%x,%p\n", hinstDLL, reason, reserved);
- if (fdwReason == DLL_PROCESS_ATTACH) + switch (reason) { - TRACE("Loading ODBC...\n"); + case DLL_PROCESS_ATTACH: DisableThreadLibraryCalls(hinstDLL); if (ODBC_LoadDriverManager()) { ODBC_LoadDMFunctions(); ODBC_ReplicateToRegistry(); } - } - else if (fdwReason == DLL_PROCESS_DETACH) - { - TRACE("Unloading ODBC...\n"); - if (dmHandle) - { - wine_dlclose(dmHandle,NULL,0); - dmHandle = NULL; - } + break; + + case DLL_PROCESS_DETACH: + if (reserved) break; + if (dmHandle) wine_dlclose(dmHandle,NULL,0); }
return TRUE;