--- a/hotspot/src/share/vm/memory/heapInspection.cpp Fri Feb 27 15:30:47 2009 -0800
+++ b/hotspot/src/share/vm/memory/heapInspection.cpp Mon Mar 02 16:37:04 2009 -0800
@@ -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.
}