hotspot/src/share/vm/prims/jvmtiTagMap.cpp
changeset 1374 4c24294029a9
parent 360 21d113ecbf6a
child 1388 3677f5f3d66b
equal deleted inserted replaced
615:570062d730b2 1374:4c24294029a9
   398 // memory region for young generation
   398 // memory region for young generation
   399 MemRegion JvmtiTagMap::_young_gen;
   399 MemRegion JvmtiTagMap::_young_gen;
   400 
   400 
   401 // get the memory region used for the young generation
   401 // get the memory region used for the young generation
   402 void JvmtiTagMap::get_young_generation() {
   402 void JvmtiTagMap::get_young_generation() {
   403   if (Universe::heap()->kind() == CollectedHeap::GenCollectedHeap) {
   403   CollectedHeap* ch = Universe::heap();
   404     GenCollectedHeap* gch = GenCollectedHeap::heap();
   404   switch (ch->kind()) {
   405     _young_gen = gch->get_gen(0)->reserved();
   405     case (CollectedHeap::GenCollectedHeap): {
   406   } else {
   406       _young_gen = ((GenCollectedHeap*)ch)->get_gen(0)->reserved();
       
   407       break;
       
   408     }
   407 #ifndef SERIALGC
   409 #ifndef SERIALGC
   408     ParallelScavengeHeap* psh = ParallelScavengeHeap::heap();
   410     case (CollectedHeap::ParallelScavengeHeap): {
   409     _young_gen= psh->young_gen()->reserved();
   411       _young_gen = ((ParallelScavengeHeap*)ch)->young_gen()->reserved();
   410 #else  // SERIALGC
   412       break;
   411     fatal("SerialGC only supported in this configuration.");
   413     }
   412 #endif // SERIALGC
   414     case (CollectedHeap::G1CollectedHeap): {
       
   415       // Until a more satisfactory solution is implemented, all
       
   416       // oops in the tag map will require rehash at each gc.
       
   417       // This is a correct, if extremely inefficient solution.
       
   418       // See RFE 6621729 for related commentary.
       
   419       _young_gen = ch->reserved_region();
       
   420       break;
       
   421     }
       
   422 #endif  // !SERIALGC
       
   423     default:
       
   424       ShouldNotReachHere();
   413   }
   425   }
   414 }
   426 }
   415 
   427 
   416 // returns true if oop is in the young generation
   428 // returns true if oop is in the young generation
   417 inline bool JvmtiTagMap::is_in_young(oop o) {
   429 inline bool JvmtiTagMap::is_in_young(oop o) {