hotspot/src/share/vm/memory/genCollectedHeap.cpp
changeset 9997 b75b7939f448
parent 9995 290620c08233
child 10022 377345fb5fb5
equal deleted inserted replaced
9996:3851e45f93e7 9997:b75b7939f448
   432   // Otherwise...
   432   // Otherwise...
   433   return NULL;
   433   return NULL;
   434 }
   434 }
   435 
   435 
   436 HeapWord* GenCollectedHeap::mem_allocate(size_t size,
   436 HeapWord* GenCollectedHeap::mem_allocate(size_t size,
   437                                          bool is_large_noref,
       
   438                                          bool is_tlab,
       
   439                                          bool* gc_overhead_limit_was_exceeded) {
   437                                          bool* gc_overhead_limit_was_exceeded) {
   440   return collector_policy()->mem_allocate_work(size,
   438   return collector_policy()->mem_allocate_work(size,
   441                                                is_tlab,
   439                                                false /* is_tlab */,
   442                                                gc_overhead_limit_was_exceeded);
   440                                                gc_overhead_limit_was_exceeded);
   443 }
   441 }
   444 
   442 
   445 bool GenCollectedHeap::must_clear_all_soft_refs() {
   443 bool GenCollectedHeap::must_clear_all_soft_refs() {
   446   return _gc_cause == GCCause::_last_ditch_collection;
   444   return _gc_cause == GCCause::_last_ditch_collection;
  1118   return result;
  1116   return result;
  1119 }
  1117 }
  1120 
  1118 
  1121 HeapWord* GenCollectedHeap::allocate_new_tlab(size_t size) {
  1119 HeapWord* GenCollectedHeap::allocate_new_tlab(size_t size) {
  1122   bool gc_overhead_limit_was_exceeded;
  1120   bool gc_overhead_limit_was_exceeded;
  1123   HeapWord* result = mem_allocate(size   /* size */,
  1121   return collector_policy()->mem_allocate_work(size /* size */,
  1124                                   false  /* is_large_noref */,
  1122                                                true /* is_tlab */,
  1125                                   true   /* is_tlab */,
  1123                                                &gc_overhead_limit_was_exceeded);
  1126                                   &gc_overhead_limit_was_exceeded);
       
  1127   return result;
       
  1128 }
  1124 }
  1129 
  1125 
  1130 // Requires "*prev_ptr" to be non-NULL.  Deletes and a block of minimal size
  1126 // Requires "*prev_ptr" to be non-NULL.  Deletes and a block of minimal size
  1131 // from the list headed by "*prev_ptr".
  1127 // from the list headed by "*prev_ptr".
  1132 static ScratchBlock *removeSmallestScratch(ScratchBlock **prev_ptr) {
  1128 static ScratchBlock *removeSmallestScratch(ScratchBlock **prev_ptr) {
  1175 
  1171 
  1176 void GenCollectedHeap::release_scratch() {
  1172 void GenCollectedHeap::release_scratch() {
  1177   for (int i = 0; i < _n_gens; i++) {
  1173   for (int i = 0; i < _n_gens; i++) {
  1178     _gens[i]->reset_scratch();
  1174     _gens[i]->reset_scratch();
  1179   }
  1175   }
  1180 }
       
  1181 
       
  1182 size_t GenCollectedHeap::large_typearray_limit() {
       
  1183   return gen_policy()->large_typearray_limit();
       
  1184 }
  1176 }
  1185 
  1177 
  1186 class GenPrepareForVerifyClosure: public GenCollectedHeap::GenClosure {
  1178 class GenPrepareForVerifyClosure: public GenCollectedHeap::GenClosure {
  1187   void do_generation(Generation* gen) {
  1179   void do_generation(Generation* gen) {
  1188     gen->prepare_for_verify();
  1180     gen->prepare_for_verify();