OSDN Git Service

* darwin_stop_world.c (GC_push_all_stacks, GC_stop_world,
authorbryce <bryce@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 11 Apr 2006 21:56:27 +0000 (21:56 +0000)
committerbryce <bryce@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 11 Apr 2006 21:56:27 +0000 (21:56 +0000)
        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

boehm-gc/ChangeLog
boehm-gc/darwin_stop_world.c

index 1195d7e..936d3bf 100644 (file)
@@ -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>
 
index 3c0c371..c2a033d 100644 (file)
@@ -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