[Wine-patches] [eterhack] ntdll: Fix merge error (eterbug #5473).

Alexander Morozov amorozov на etersoft.ru
Пт Май 28 14:43:20 MSD 2010


----------- следующая часть -----------
From 43466737301d5f95a35ecc74e04fea2eb496b2c9 Mon Sep 17 00:00:00 2001
From: Alexander Morozov <amorozov на etersoft.ru>
Date: Fri, 28 May 2010 14:38:40 +0400
Subject: [eterhack] ntdll: Fix merge error (eterbug #5473).

---
 dlls/ntdll/virtual.c |   14 +++++++++++---
 1 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/dlls/ntdll/virtual.c b/dlls/ntdll/virtual.c
index 58db410..d3f262a 100644
--- a/dlls/ntdll/virtual.c
+++ b/dlls/ntdll/virtual.c
@@ -1683,6 +1683,10 @@ static int free_reserved_memory( void *base, size_t size, void *arg )
  */
 void virtual_release_address_space( BOOL free_high_mem )
 {
+#ifndef __APPLE__
+    static const char winedevice[] = "\\winedevice.exe";
+    char *path;
+#endif
     struct free_range range;
     sigset_t sigset;
 
@@ -1701,9 +1705,13 @@ void virtual_release_address_space( BOOL free_high_mem )
     else
     {
 #ifndef __APPLE__  /* dyld doesn't support parts of the WINE_DOS segment being unmapped */
-        range.base  = (char *)0x20000000;
-        range.limit = (char *)0x7f000000;
-        while (wine_mmap_enum_reserved_areas( free_reserved_memory, &range, 0 )) /* nothing */;
+        if (!(path = strrchr( __wine_main_argv[0], '\\' )) ||
+            strcasecmp( path, winedevice ))
+        {
+            range.base  = (char *)0x20000000;
+            range.limit = (char *)0x7f000000;
+            while (wine_mmap_enum_reserved_areas( free_reserved_memory, &range, 0 )) /* nothing */;
+        }
 #endif
     }
 
-- 
1.6.5.8



Подробная информация о списке рассылки Wine-patches