[1/3] kernel32: GlobalMemoryStatusEx: memory usage reported only reflects physical memory

Fabian Bieler der.fabe at gmx.net
Wed Mar 14 18:40:51 CDT 2007


This patch also fixes memory usage on sun and BSD (memory usage should be 
reported in percent, not absolutely)
-------------- next part --------------
From b25af4166f0417da316b0b196447949f3b0c31fc Mon Sep 17 00:00:00 2001
From: Fabian Bieler <der.fabe at gmx.net>
Date: Thu, 15 Mar 2007 00:20:37 +0100
Subject: [PATCH] kernel32: GlobalMemoryStatusEx: memory usage reported only reflects physical memory

---
 dlls/kernel32/heap.c |   16 ++++++----------
 1 files changed, 6 insertions(+), 10 deletions(-)

diff --git a/dlls/kernel32/heap.c b/dlls/kernel32/heap.c
index 4fb4929..d311d1f 100644
--- a/dlls/kernel32/heap.c
+++ b/dlls/kernel32/heap.c
@@ -1262,14 +1262,6 @@ BOOL WINAPI GlobalMemoryStatusEx( LPMEMORYSTATUSEX lpmemex )
                 lpmemex->ullAvailPhys += cached*1024;
         }
         fclose( f );
-
-        if (lpmemex->ullTotalPhys)
-        {
-            DWORDLONG TotalPhysical = lpmemex->ullTotalPhys+lpmemex->ullTotalPageFile;
-            DWORDLONG AvailPhysical = lpmemex->ullAvailPhys+lpmemex->ullAvailPageFile;
-            lpmemex->dwMemoryLoad = (TotalPhysical-AvailPhysical)
-                                      / (TotalPhysical / 100);
-        }
     }
 #elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__NetBSD__) || defined(__APPLE__)
     mib[0] = CTL_HW;
@@ -1284,7 +1276,6 @@ BOOL WINAPI GlobalMemoryStatusEx( LPMEMORYSTATUSEX lpmemex )
     lpmemex->ullAvailPhys = val;
     lpmemex->ullTotalPageFile = val;
     lpmemex->ullAvailPageFile = val;
-    lpmemex->dwMemoryLoad = lpmemex->ullTotalPhys - lpmemex->ullAvailPhys;
 #elif defined ( sun )
     pagesize=sysconf(_SC_PAGESIZE);
     maxpages=sysconf(_SC_PHYS_PAGES);
@@ -1305,9 +1296,14 @@ BOOL WINAPI GlobalMemoryStatusEx( LPMEMORYSTATUSEX lpmemex )
     lpmemex->ullAvailPhys = pagesize*freepages;
     lpmemex->ullTotalPageFile = swapspace;
     lpmemex->ullAvailPageFile = swapfree;
-    lpmemex->dwMemoryLoad =  lpmemex->ullTotalPhys - lpmemex->ullAvailPhys;
 #endif
 
+    if (lpmemex->ullTotalPhys)
+    {
+        lpmemex->dwMemoryLoad = (lpmemex->ullTotalPhys-lpmemex->ullAvailPhys)
+                                  / (lpmemex->ullTotalPhys / 100);
+    }
+
     /* Project2k refuses to start if it sees less than 1Mb of free swap */
     if (lpmemex->ullTotalPageFile < lpmemex->ullTotalPhys)
         lpmemex->ullTotalPageFile = lpmemex->ullTotalPhys;
-- 
1.4.4.1



More information about the wine-patches mailing list