summaryrefslogtreecommitdiff
path: root/allchblk.c
diff options
context:
space:
mode:
Diffstat (limited to 'allchblk.c')
-rw-r--r--allchblk.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/allchblk.c b/allchblk.c
index 1481264b..df9b6b0e 100644
--- a/allchblk.c
+++ b/allchblk.c
@@ -419,14 +419,16 @@ GC_INNER void GC_unmap_old(void)
/* fully mapped or fully unmapped. */
GC_INNER void GC_merge_unmapped(void)
{
- struct hblk * h, *next;
- hdr * hhdr, *nexthdr;
- word size, nextsize;
int i;
for (i = 0; i <= N_HBLK_FLS; ++i) {
- h = GC_hblkfreelist[i];
+ struct hblk *h = GC_hblkfreelist[i];
+
while (h != 0) {
+ struct hblk *next;
+ hdr *hhdr, *nexthdr;
+ word size, nextsize;
+
GET_HDR(h, hhdr);
size = hhdr->hb_sz;
next = (struct hblk *)((word)h + size);