# HG changeset patch # User Bruno Haible # Date 1295376457 -3600 # Node ID bdfd0ba6ce2d37082300970b48de3239b2ae35b8 # Parent c6bc5712a6a9e6fdf275eac3768fd2a336c913b2 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 --- 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 --- a/lib/get-rusage-as.c +++ b/lib/get-rusage-as.c @@ -653,7 +653,11 @@ 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;