< prev index next >

src/hotspot/share/gc/g1/g1ConcurrentMark.inline.hpp

Print this page
rev 60592 : 8252034: G1: Remove *g1_reserved* methods
Reviewed-by:


  89   TaskQueueEntryChunk* cur = _chunk_list;
  90   while (cur != NULL) {
  91     guarantee(num_chunks <= _chunks_in_chunk_list, "Found " SIZE_FORMAT " oop chunks which is more than there should be", num_chunks);
  92 
  93     for (size_t i = 0; i < EntriesPerChunk; ++i) {
  94       if (cur->data[i].is_null()) {
  95         break;
  96       }
  97       fn(cur->data[i]);
  98     }
  99     cur = cur->next;
 100     num_chunks++;
 101   }
 102 }
 103 #endif
 104 
 105 // It scans an object and visits its children.
 106 inline void G1CMTask::scan_task_entry(G1TaskQueueEntry task_entry) { process_grey_task_entry<true>(task_entry); }
 107 
 108 inline void G1CMTask::push(G1TaskQueueEntry task_entry) {
 109   assert(task_entry.is_array_slice() || _g1h->is_in_g1_reserved(task_entry.obj()), "invariant");
 110   assert(task_entry.is_array_slice() || !_g1h->is_on_master_free_list(
 111               _g1h->heap_region_containing(task_entry.obj())), "invariant");
 112   assert(task_entry.is_array_slice() || !_g1h->is_obj_ill(task_entry.obj()), "invariant");  // FIXME!!!
 113   assert(task_entry.is_array_slice() || _next_mark_bitmap->is_marked(cast_from_oop<HeapWord*>(task_entry.obj())), "invariant");
 114 
 115   if (!_task_queue->push(task_entry)) {
 116     // The local task queue looks full. We need to push some entries
 117     // to the global stack.
 118     move_entries_to_global_stack();
 119 
 120     // this should succeed since, even if we overflow the global
 121     // stack, we should have definitely removed some entries from the
 122     // local queue. So, there must be space on it.
 123     bool success = _task_queue->push(task_entry);
 124     assert(success, "invariant");
 125   }
 126 }
 127 
 128 inline bool G1CMTask::is_below_finger(oop obj, HeapWord* global_finger) const {
 129   // If obj is above the global finger, then the mark bitmap scan




  89   TaskQueueEntryChunk* cur = _chunk_list;
  90   while (cur != NULL) {
  91     guarantee(num_chunks <= _chunks_in_chunk_list, "Found " SIZE_FORMAT " oop chunks which is more than there should be", num_chunks);
  92 
  93     for (size_t i = 0; i < EntriesPerChunk; ++i) {
  94       if (cur->data[i].is_null()) {
  95         break;
  96       }
  97       fn(cur->data[i]);
  98     }
  99     cur = cur->next;
 100     num_chunks++;
 101   }
 102 }
 103 #endif
 104 
 105 // It scans an object and visits its children.
 106 inline void G1CMTask::scan_task_entry(G1TaskQueueEntry task_entry) { process_grey_task_entry<true>(task_entry); }
 107 
 108 inline void G1CMTask::push(G1TaskQueueEntry task_entry) {
 109   assert(task_entry.is_array_slice() || _g1h->is_in_reserved(task_entry.obj()), "invariant");
 110   assert(task_entry.is_array_slice() || !_g1h->is_on_master_free_list(
 111               _g1h->heap_region_containing(task_entry.obj())), "invariant");
 112   assert(task_entry.is_array_slice() || !_g1h->is_obj_ill(task_entry.obj()), "invariant");  // FIXME!!!
 113   assert(task_entry.is_array_slice() || _next_mark_bitmap->is_marked(cast_from_oop<HeapWord*>(task_entry.obj())), "invariant");
 114 
 115   if (!_task_queue->push(task_entry)) {
 116     // The local task queue looks full. We need to push some entries
 117     // to the global stack.
 118     move_entries_to_global_stack();
 119 
 120     // this should succeed since, even if we overflow the global
 121     // stack, we should have definitely removed some entries from the
 122     // local queue. So, there must be space on it.
 123     bool success = _task_queue->push(task_entry);
 124     assert(success, "invariant");
 125   }
 126 }
 127 
 128 inline bool G1CMTask::is_below_finger(oop obj, HeapWord* global_finger) const {
 129   // If obj is above the global finger, then the mark bitmap scan


< prev index next >