[MSVCR*]
authorThomas Faber <thomas.faber@reactos.org>
Sat, 18 Apr 2015 12:15:15 +0000 (12:15 +0000)
committerThomas Faber <thomas.faber@reactos.org>
Sat, 18 Apr 2015 12:15:15 +0000 (12:15 +0000)
- Don't bother to clean up at process exit (Wine commit 66a54686 by Alexandre Julliard)

svn path=/trunk/; revision=67250

reactos/dll/win32/crtdll/dllmain.c
reactos/dll/win32/msvcrt/dllmain.c
reactos/dll/win32/msvcrt20/msvcrt20.c
reactos/dll/win32/msvcrt40/msvcrt40.c

index a8505a7..e933f2e 100644 (file)
@@ -160,6 +160,7 @@ DllMain(PVOID hinstDll, ULONG dwReason, PVOID reserved)
         TRACE("Detach\n");
         /* Deinit of the WINE code */
         msvcrt_free_io();
         TRACE("Detach\n");
         /* Deinit of the WINE code */
         msvcrt_free_io();
+        if (reserved) break;
         msvcrt_free_mt_locks();
         //msvcrt_free_console();
         //msvcrt_free_args();
         msvcrt_free_mt_locks();
         //msvcrt_free_console();
         //msvcrt_free_args();
@@ -169,12 +170,12 @@ DllMain(PVOID hinstDll, ULONG dwReason, PVOID reserved)
           return FALSE;
         //MSVCRT__free_locale(MSVCRT_locale);
 
           return FALSE;
         //MSVCRT__free_locale(MSVCRT_locale);
 
-    if (__winitenv && __winitenv != _wenviron)
+        if (__winitenv && __winitenv != _wenviron)
             FreeEnvironment((char**)__winitenv);
         if (_wenviron)
             FreeEnvironment((char**)_wenviron);
 
             FreeEnvironment((char**)__winitenv);
         if (_wenviron)
             FreeEnvironment((char**)_wenviron);
 
-    if (__initenv && __initenv != _environ)
+        if (__initenv && __initenv != _environ)
             FreeEnvironment(__initenv);
         if (_environ)
             FreeEnvironment(_environ);
             FreeEnvironment(__initenv);
         if (_environ)
             FreeEnvironment(_environ);
index 5650fe0..1576a92 100644 (file)
@@ -97,6 +97,7 @@ DllMain(PVOID hinstDll, ULONG dwReason, PVOID reserved)
         TRACE("Detach\n");
         /* Deinit of the WINE code */
         msvcrt_free_io();
         TRACE("Detach\n");
         /* Deinit of the WINE code */
         msvcrt_free_io();
+        if (reserved) break;
         msvcrt_free_mt_locks();
         //msvcrt_free_console();
         //msvcrt_free_args();
         msvcrt_free_mt_locks();
         //msvcrt_free_console();
         //msvcrt_free_args();
@@ -107,12 +108,12 @@ DllMain(PVOID hinstDll, ULONG dwReason, PVOID reserved)
         if(global_locale)
           MSVCRT__free_locale(global_locale);
 
         if(global_locale)
           MSVCRT__free_locale(global_locale);
 
-    if (__winitenv && __winitenv != _wenviron)
+        if (__winitenv && __winitenv != _wenviron)
             FreeEnvironment((char**)__winitenv);
         if (_wenviron)
             FreeEnvironment((char**)_wenviron);
 
             FreeEnvironment((char**)__winitenv);
         if (_wenviron)
             FreeEnvironment((char**)_wenviron);
 
-    if (__initenv && __initenv != _environ)
+        if (__initenv && __initenv != _environ)
             FreeEnvironment(__initenv);
         if (_environ)
             FreeEnvironment(_environ);
             FreeEnvironment(__initenv);
         if (_environ)
             FreeEnvironment(_environ);
index 7377faf..1390cab 100644 (file)
@@ -116,6 +116,7 @@ DllMain(PVOID hinstDll, ULONG dwReason, PVOID reserved)
         TRACE("Detach\n");
         /* Deinit of the WINE code */
         msvcrt_free_io();
         TRACE("Detach\n");
         /* Deinit of the WINE code */
         msvcrt_free_io();
+        if (reserved) break;
         msvcrt_free_mt_locks();
         //msvcrt_free_console();
         //msvcrt_free_args();
         msvcrt_free_mt_locks();
         //msvcrt_free_console();
         //msvcrt_free_args();
@@ -126,12 +127,12 @@ DllMain(PVOID hinstDll, ULONG dwReason, PVOID reserved)
         if(global_locale)
           MSVCRT__free_locale(global_locale);
 
         if(global_locale)
           MSVCRT__free_locale(global_locale);
 
-    if (__winitenv && __winitenv != _wenviron)
+        if (__winitenv && __winitenv != _wenviron)
             FreeEnvironment((char**)__winitenv);
         if (_wenviron)
             FreeEnvironment((char**)_wenviron);
 
             FreeEnvironment((char**)__winitenv);
         if (_wenviron)
             FreeEnvironment((char**)_wenviron);
 
-    if (__initenv && __initenv != _environ)
+        if (__initenv && __initenv != _environ)
             FreeEnvironment(__initenv);
         if (_environ)
             FreeEnvironment(_environ);
             FreeEnvironment(__initenv);
         if (_environ)
             FreeEnvironment(_environ);
index bd030c3..76cfffd 100644 (file)
@@ -112,6 +112,7 @@ DllMain(PVOID hinstDll, ULONG dwReason, PVOID reserved)
         TRACE("Detach\n");
         /* Deinit of the WINE code */
         msvcrt_free_io();
         TRACE("Detach\n");
         /* Deinit of the WINE code */
         msvcrt_free_io();
+        if (reserved) break;
         msvcrt_free_mt_locks();
         //msvcrt_free_console();
         //msvcrt_free_args();
         msvcrt_free_mt_locks();
         //msvcrt_free_console();
         //msvcrt_free_args();
@@ -122,12 +123,12 @@ DllMain(PVOID hinstDll, ULONG dwReason, PVOID reserved)
         if(global_locale)
           MSVCRT__free_locale(global_locale);
 
         if(global_locale)
           MSVCRT__free_locale(global_locale);
 
-    if (__winitenv && __winitenv != _wenviron)
+        if (__winitenv && __winitenv != _wenviron)
             FreeEnvironment((char**)__winitenv);
         if (_wenviron)
             FreeEnvironment((char**)_wenviron);
 
             FreeEnvironment((char**)__winitenv);
         if (_wenviron)
             FreeEnvironment((char**)_wenviron);
 
-    if (__initenv && __initenv != _environ)
+        if (__initenv && __initenv != _environ)
             FreeEnvironment(__initenv);
         if (_environ)
             FreeEnvironment(_environ);
             FreeEnvironment(__initenv);
         if (_environ)
             FreeEnvironment(_environ);