src/share/vm/memory/heapInspection.cpp

changeset 777
37f87013dfd8
parent 446
3c1dbcaaab1d
child 791
1ee8caae33af
     1.1 --- a/src/share/vm/memory/heapInspection.cpp	Wed Jun 04 13:51:09 2008 -0700
     1.2 +++ b/src/share/vm/memory/heapInspection.cpp	Thu Jun 05 15:57:56 2008 -0700
     1.3 @@ -238,11 +238,14 @@
     1.4    HeapWord* ref;
     1.5  
     1.6    CollectedHeap* heap = Universe::heap();
     1.7 +  bool is_shared_heap = false;
     1.8    switch (heap->kind()) {
     1.9 +    case CollectedHeap::G1CollectedHeap:
    1.10      case CollectedHeap::GenCollectedHeap: {
    1.11 -      GenCollectedHeap* gch = (GenCollectedHeap*)heap;
    1.12 -      gch->gc_prologue(false /* !full */); // get any necessary locks
    1.13 -      ref = gch->perm_gen()->used_region().start();
    1.14 +      is_shared_heap = true;
    1.15 +      SharedHeap* sh = (SharedHeap*)heap;
    1.16 +      sh->gc_prologue(false /* !full */); // get any necessary locks, etc.
    1.17 +      ref = sh->perm_gen()->used_region().start();
    1.18        break;
    1.19      }
    1.20  #ifndef SERIALGC
    1.21 @@ -284,9 +287,9 @@
    1.22    }
    1.23    st->flush();
    1.24  
    1.25 -  if (Universe::heap()->kind() == CollectedHeap::GenCollectedHeap) {
    1.26 -    GenCollectedHeap* gch = GenCollectedHeap::heap();
    1.27 -    gch->gc_epilogue(false /* !full */); // release all acquired locks
    1.28 +  if (is_shared_heap) {
    1.29 +    SharedHeap* sh = (SharedHeap*)heap;
    1.30 +    sh->gc_epilogue(false /* !full */); // release all acquired locks, etc.
    1.31    }
    1.32  }
    1.33  

mercurial