Author: akhaldi
Date: Sat Apr 30 14:26:21 2011
New Revision: 51504

URL: http://svn.reactos.org/svn/reactos?rev=51504&view=rev
Log:
[CRT/MINGW-W64]
* Reorganize dll entry and C runtime initialization. By Kai Tietz.

Modified:
    trunk/reactos/lib/3rdparty/mingw/crtdll.c

Modified: trunk/reactos/lib/3rdparty/mingw/crtdll.c
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/3rdparty/mingw/crtdll.c?rev=51504&r1=51503&r2=51504&view=diff
==============================================================================
--- trunk/reactos/lib/3rdparty/mingw/crtdll.c [iso-8859-1] (original)
+++ trunk/reactos/lib/3rdparty/mingw/crtdll.c [iso-8859-1] Sat Apr 30 14:26:21 
2011
@@ -180,33 +180,33 @@
        goto i__leave;
     }
   _pei386_runtime_relocator ();
-  if (retcode && dwReason == DLL_PROCESS_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);
+       if (! retcode)
+         {
+           if (dwReason == DLL_PROCESS_ATTACH)
+             _CRT_INIT (hDllHandle, DLL_PROCESS_DETACH, lpreserved);
+           goto i__leave;
+         }
+    }
+  if (dwReason == DLL_PROCESS_ATTACH)
     __main ();
-  if (dwReason == DLL_PROCESS_ATTACH || dwReason == DLL_THREAD_ATTACH)
+  retcode = DllMain(hDllHandle,dwReason,lpreserved);
+  if (dwReason == DLL_PROCESS_ATTACH && ! retcode)
+    {
+       DllMain (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 (retcode)
-         retcode = _CRT_INIT (hDllHandle, dwReason, lpreserved);
-       if (! retcode)
-         goto i__leave;
-    }
-  retcode = DllMain(hDllHandle,dwReason,lpreserved);
-  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);
-    }
-  if (dwReason == DLL_PROCESS_DETACH || dwReason == DLL_THREAD_DETACH)
-    {
        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;


Reply via email to