summaryrefslogtreecommitdiff
path: root/boehm-gc
diff options
context:
space:
mode:
authorbryce <bryce@138bc75d-0d04-0410-961f-82ee72b054a4>2006-04-11 21:56:27 +0000
committerbryce <bryce@138bc75d-0d04-0410-961f-82ee72b054a4>2006-04-11 21:56:27 +0000
commitfe4f79ce65058a931452cde4aa16635f7cfacfa3 (patch)
tree6d7c2c00dce8422204ec1b71cb214f34eb7a70f4 /boehm-gc
parent745c77d19fcd1469e513082ce402fa7d9c30f4c6 (diff)
downloadgcc-fe4f79ce65058a931452cde4aa16635f7cfacfa3.tar.gz
* darwin_stop_world.c (GC_push_all_stacks, GC_stop_world,
GC_start_world): Call vm_deallocate to free act_list. Fix from Bruce Mitchener. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@112867 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'boehm-gc')
-rw-r--r--boehm-gc/ChangeLog6
-rw-r--r--boehm-gc/darwin_stop_world.c3
2 files changed, 9 insertions, 0 deletions
diff --git a/boehm-gc/ChangeLog b/boehm-gc/ChangeLog
index 1195d7ee5e9..936d3bfc233 100644
--- a/boehm-gc/ChangeLog
+++ b/boehm-gc/ChangeLog
@@ -1,3 +1,9 @@
+2006-04-11 Bryce McKinlay <mckinlay@redhat.com>
+
+ * darwin_stop_world.c (GC_push_all_stacks, GC_stop_world,
+ GC_start_world): Call vm_deallocate to free act_list. Fix from
+ Bruce Mitchener.
+
2006-03-24 Andreas Tobler <a.tobler@schweiz.ch>
John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
diff --git a/boehm-gc/darwin_stop_world.c b/boehm-gc/darwin_stop_world.c
index 3c0c3710afb..c2a033d3cc4 100644
--- a/boehm-gc/darwin_stop_world.c
+++ b/boehm-gc/darwin_stop_world.c
@@ -249,6 +249,7 @@ void GC_push_all_stacks() {
# endif
GC_push_all_stack(lo, hi);
} /* for(p=GC_threads[i]...) */
+ vm_deallocate(current_task(), (vm_address_t)act_list, sizeof(thread_t) * listcount);
}
#endif /* !DARWIN_DONT_PARSE_STACK */
@@ -392,6 +393,7 @@ void GC_stop_world()
changes = result;
prev_list = act_list;
prevcount = listcount;
+ vm_deallocate(current_task(), (vm_address_t)act_list, sizeof(thread_t) * listcount);
} while (changes);
@@ -463,6 +465,7 @@ void GC_start_world()
}
}
}
+ vm_deallocate(current_task(), (vm_address_t)act_list, sizeof(thread_t) * listcount);
# if DEBUG_THREADS
GC_printf0("World started\n");
# endif