hotspot/src/share/vm/memory/heapInspection.cpp
changeset 2154 72a9b7284ccf
parent 2105 347008ce7984
parent 2141 e9a644aaff87
child 5402 c51fd0c1d005
--- a/hotspot/src/share/vm/memory/heapInspection.cpp	Mon Mar 09 13:34:00 2009 -0700
+++ b/hotspot/src/share/vm/memory/heapInspection.cpp	Thu Mar 12 18:16:36 2009 -0700
@@ -233,7 +233,7 @@
   size_t missed_count() { return _missed_count; }
 };
 
-void HeapInspection::heap_inspection(outputStream* st) {
+void HeapInspection::heap_inspection(outputStream* st, bool need_prologue) {
   ResourceMark rm;
   HeapWord* ref;
 
@@ -244,7 +244,9 @@
     case CollectedHeap::GenCollectedHeap: {
       is_shared_heap = true;
       SharedHeap* sh = (SharedHeap*)heap;
-      sh->gc_prologue(false /* !full */); // get any necessary locks, etc.
+      if (need_prologue) {
+        sh->gc_prologue(false /* !full */); // get any necessary locks, etc.
+      }
       ref = sh->perm_gen()->used_region().start();
       break;
     }
@@ -290,7 +292,7 @@
   }
   st->flush();
 
-  if (is_shared_heap) {
+  if (need_prologue && is_shared_heap) {
     SharedHeap* sh = (SharedHeap*)heap;
     sh->gc_epilogue(false /* !full */); // release all acquired locks, etc.
   }