From ba9d67765afcde479d0e77b43e08ae1d54c6144a Mon Sep 17 00:00:00 2001
From: Bryce McKinlay <mckinlay@redhat.com>
Date: Tue, 11 Apr 2006 21:56:27 +0000
Subject: [PATCH] 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
---
 boehm-gc/ChangeLog           | 6 ++++++
 boehm-gc/darwin_stop_world.c | 3 +++
 2 files changed, 9 insertions(+)

diff --git a/boehm-gc/ChangeLog b/boehm-gc/ChangeLog
index 1195d7ee5e98..936d3bfc2332 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 3c0c3710afbf..c2a033d3cc44 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
-- 
GitLab