X-Git-Url: https://git.reactos.org/?p=reactos.git;a=blobdiff_plain;f=reactos%2Flib%2F3rdparty%2Fmingw%2Fcrtdll.c;h=001cbd7358f4d1e5dfa78c4842f21aba5834c0b1;hp=55665bda536f6db30998c214e6db29620cc7b1aa;hb=dd8253dc8c4fe12b5cba22773a1e4c52ebe373c5;hpb=426f2618230da05387d5d8fa95ee25ae9de3d86a diff --git a/reactos/lib/3rdparty/mingw/crtdll.c b/reactos/lib/3rdparty/mingw/crtdll.c index 55665bda536..001cbd7358f 100644 --- a/reactos/lib/3rdparty/mingw/crtdll.c +++ b/reactos/lib/3rdparty/mingw/crtdll.c @@ -180,33 +180,33 @@ __DllMainCRTStartup (HANDLE hDllHandle, DWORD dwReason, LPVOID lpreserved) goto i__leave; } _pei386_runtime_relocator (); - if (retcode && dwReason == DLL_PROCESS_ATTACH) - __main (); if (dwReason == DLL_PROCESS_ATTACH || dwReason == DLL_THREAD_ATTACH) { + retcode = _CRT_INIT (hDllHandle, dwReason, lpreserved); + if (!retcode) + goto i__leave; retcode = DllEntryPoint (hDllHandle, dwReason, lpreserved); - if (retcode) - retcode = _CRT_INIT (hDllHandle, dwReason, lpreserved); if (! retcode) - goto i__leave; + { + if (dwReason == DLL_PROCESS_ATTACH) + _CRT_INIT (hDllHandle, DLL_PROCESS_DETACH, lpreserved); + goto i__leave; + } } + if (dwReason == DLL_PROCESS_ATTACH) + __main (); retcode = DllMain(hDllHandle,dwReason,lpreserved); - if ((dwReason == DLL_PROCESS_ATTACH) && ! retcode) + if (dwReason == DLL_PROCESS_ATTACH && ! retcode) { DllMain (hDllHandle, DLL_PROCESS_DETACH, lpreserved); - _CRT_INIT (hDllHandle, DLL_PROCESS_DETACH, lpreserved); DllEntryPoint (hDllHandle, DLL_PROCESS_DETACH, lpreserved); + _CRT_INIT (hDllHandle, DLL_PROCESS_DETACH, lpreserved); } if (dwReason == DLL_PROCESS_DETACH || dwReason == DLL_THREAD_DETACH) { + retcode = DllEntryPoint (hDllHandle, dwReason, lpreserved); if (_CRT_INIT (hDllHandle, dwReason, lpreserved) == FALSE) - { - retcode = FALSE; - } - if (retcode) - { - retcode = DllEntryPoint (hDllHandle, dwReason, lpreserved); - } + retcode = FALSE; } i__leave: __native_dllmain_reason = UINT_MAX;