summaryrefslogtreecommitdiff
path: root/libpager
diff options
context:
space:
mode:
authorMichael I. Bushnell <mib@gnu.org>1996-03-26 20:50:25 +0000
committerMichael I. Bushnell <mib@gnu.org>1996-03-26 20:50:25 +0000
commitde0efcb43775dc129a489a93824d736871185dce (patch)
tree47f3f4ad1ab32fdadaed390c8299f2b63131dfbb /libpager
parent6c9c06cbbdf37bcdf8e115298f058cf91ac431ca (diff)
(_pager_free_structure): Clean P->anticipations here.
Diffstat (limited to 'libpager')
-rw-r--r--libpager/object-terminate.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/libpager/object-terminate.c b/libpager/object-terminate.c
index 8598ab50..bab7ddb4 100644
--- a/libpager/object-terminate.c
+++ b/libpager/object-terminate.c
@@ -87,6 +87,7 @@ _pager_free_structure (struct pager *p)
int wakeup;
struct lock_request *lr;
struct attribute_request *ar;
+ struct anticipation *ant, *nxt;
wakeup = 0;
for (lr = p->lock_requests; lr; lr = lr->next)
@@ -107,6 +108,13 @@ _pager_free_structure (struct pager *p)
mach_port_deallocate (mach_task_self (), p->memobjcntl);
mach_port_deallocate (mach_task_self (), p->memobjname);
+ for (ant = p->anticipations; ant; ant = nxt)
+ {
+ vm_deallocate (mach_task_self (), ant->address, ant->len);
+ nxt = ant->next;
+ free (ant);
+ }
+
/* Free the pagemap */
if (p->pagemapsize)
{