]> granicus.if.org Git - gc/commitdiff
2008-12-01 Hans Boehm <Hans.Boehm@hp.com>
authorhboehm <hboehm>
Tue, 2 Dec 2008 00:37:17 +0000 (00:37 +0000)
committerIvan Maidanski <ivmai@mail.ru>
Tue, 26 Jul 2011 17:06:44 +0000 (21:06 +0400)
* reclaim.c: (GC_reclaim_block): Scan even nearly full blocks
if we are checking for leaks.

ChangeLog
reclaim.c

index e6281da35ca571aad1c71d917b977cfdfe1d4a22..1aef3bc863c601f41318024eae04161eddeb2370 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2008-12-01  Hans Boehm <Hans.Boehm@hp.com>
+       * reclaim.c: (GC_reclaim_block): Scan even nearly full blocks
+       if we are checking for leaks.
+
 2008-11-12  Hans Boehm <Hans.Boehm@hp.com> (Really mostly Ivan Maidansky)
        * win32_threads.c: Remove mark lock spinning.
        * win32_threads.c, pthread_support.c: Update GC_unlocked_count,
index b77170b89c87dbb31ff1c285223398769e6431a2..30e97deae2ffa0c86d1b70e3303626e64a978171 100644 (file)
--- a/reclaim.c
+++ b/reclaim.c
@@ -309,7 +309,7 @@ STATIC void GC_reclaim_block(struct hblk *hbp, word report_if_found)
         } else if (empty) {
           GC_bytes_found += HBLKSIZE;
           GC_freehblk(hbp);
-        } else if (TRUE != GC_block_nearly_full(hhdr)){
+        } else if (GC_find_leak || !GC_block_nearly_full(hhdr)){
           /* group of smaller objects, enqueue the real work */
           rlh = &(ok -> ok_reclaim_list[BYTES_TO_GRANULES(sz)]);
           hhdr -> hb_next = *rlh;