aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBryce McKinlay <mckinlay@redhat.com>2006-04-11 21:56:27 +0000
committerBryce McKinlay <bryce@gcc.gnu.org>2006-04-11 22:56:27 +0100
commitba9d67765afcde479d0e77b43e08ae1d54c6144a (patch)
tree6d7c2c00dce8422204ec1b71cb214f34eb7a70f4
parent58be56ea833ac63b362bb30676ed54e91c1568f1 (diff)
downloadgcc-ba9d67765afcde479d0e77b43e08ae1d54c6144a.zip
gcc-ba9d67765afcde479d0e77b43e08ae1d54c6144a.tar.gz
gcc-ba9d67765afcde479d0e77b43e08ae1d54c6144a.tar.bz2
darwin_stop_world.c (GC_push_all_stacks, [...]): Call vm_deallocate to free act_list.
* 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. From-SVN: r112867
-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 1195d7e..936d3bf 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 3c0c371..c2a033d 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