[ros-diffs] [akhaldi] 51504: [CRT/MINGW-W64] * Reorganize dll entry and C runtime initialization. By Kai Tietz.

akhaldi at svn.reactos.org akhaldi at svn.reactos.org
Sat Apr 30 14:26:23 UTC 2011


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;




More information about the Ros-diffs mailing list