mirror of
https://github.com/reactos/reactos.git
synced 2024-09-30 22:47:28 +00:00
[CRT/MINGW-W64]
* Reorganize dll entry and C runtime initialization. By Kai Tietz. svn path=/trunk/; revision=51504
This commit is contained in:
parent
426f261823
commit
dd8253dc8c
28
reactos/lib/3rdparty/mingw/crtdll.c
vendored
28
reactos/lib/3rdparty/mingw/crtdll.c
vendored
|
@ -180,33 +180,33 @@ __DllMainCRTStartup (HANDLE hDllHandle, DWORD dwReason, LPVOID lpreserved)
|
||||||
goto i__leave;
|
goto i__leave;
|
||||||
}
|
}
|
||||||
_pei386_runtime_relocator ();
|
_pei386_runtime_relocator ();
|
||||||
if (retcode && dwReason == DLL_PROCESS_ATTACH)
|
|
||||||
__main ();
|
|
||||||
if (dwReason == DLL_PROCESS_ATTACH || dwReason == DLL_THREAD_ATTACH)
|
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);
|
retcode = DllEntryPoint (hDllHandle, dwReason, lpreserved);
|
||||||
if (retcode)
|
|
||||||
retcode = _CRT_INIT (hDllHandle, dwReason, lpreserved);
|
|
||||||
if (! retcode)
|
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);
|
retcode = DllMain(hDllHandle,dwReason,lpreserved);
|
||||||
if ((dwReason == DLL_PROCESS_ATTACH) && ! retcode)
|
if (dwReason == DLL_PROCESS_ATTACH && ! retcode)
|
||||||
{
|
{
|
||||||
DllMain (hDllHandle, DLL_PROCESS_DETACH, lpreserved);
|
DllMain (hDllHandle, DLL_PROCESS_DETACH, lpreserved);
|
||||||
_CRT_INIT (hDllHandle, DLL_PROCESS_DETACH, lpreserved);
|
|
||||||
DllEntryPoint (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)
|
if (dwReason == DLL_PROCESS_DETACH || dwReason == DLL_THREAD_DETACH)
|
||||||
{
|
{
|
||||||
|
retcode = DllEntryPoint (hDllHandle, dwReason, lpreserved);
|
||||||
if (_CRT_INIT (hDllHandle, dwReason, lpreserved) == FALSE)
|
if (_CRT_INIT (hDllHandle, dwReason, lpreserved) == FALSE)
|
||||||
{
|
retcode = FALSE;
|
||||||
retcode = FALSE;
|
|
||||||
}
|
|
||||||
if (retcode)
|
|
||||||
{
|
|
||||||
retcode = DllEntryPoint (hDllHandle, dwReason, lpreserved);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
i__leave:
|
i__leave:
|
||||||
__native_dllmain_reason = UINT_MAX;
|
__native_dllmain_reason = UINT_MAX;
|
||||||
|
|
Loading…
Reference in a new issue