From: Bruno Haible Date: Tue, 18 Jan 2011 18:47:37 +0000 (+0100) Subject: get-rusage-as: Improvement for Cygwin. X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=85570b0dcffcbd7c3a13a417a083a728d83078ca;p=pspp get-rusage-as: Improvement for Cygwin. * lib/get-rusage-as.c (get_rusage_as_via_iterator): On Windows, ignore areas that are merely reserved. --- diff --git a/ChangeLog b/ChangeLog index 783de42c1e..f997119174 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2011-01-18 Bruno Haible + + get-rusage-as: Improvement for Cygwin. + * lib/get-rusage-as.c (get_rusage_as_via_iterator): On Windows, ignore + areas that are merely reserved. + 2011-01-18 Paul Eggert strftime: remove dependencies on multibyte modules diff --git a/lib/get-rusage-as.c b/lib/get-rusage-as.c index 3ca1366008..7ab1c93153 100644 --- a/lib/get-rusage-as.c +++ b/lib/get-rusage-as.c @@ -653,7 +653,11 @@ get_rusage_as_via_iterator (void) while (VirtualQuery ((void*)address, &info, sizeof(info)) == sizeof(info)) { if (info.State != MEM_FREE) - total += info.RegionSize; + /* Ignore areas where info.Protect has the undocumented value 0. + This is needed, so that on Cygwin, areas used by malloc() are + distinguished from areas reserved for future malloc(). */ + if (info.Protect != 0) + total += info.RegionSize; address = (unsigned long)info.BaseAddress + info.RegionSize; } return total;