< prev index next >

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

Print this page
*** 81,10 ***
--- 81,11 ---
  inline bool G1FullGCMarker::is_task_queue_empty() {
    return _task_queue.is_empty();
  }
  
  inline void G1FullGCMarker::process_array_chunk(objArrayOop obj, size_t start, size_t end) {
+   precond(obj->is_array_with_oops());
    obj->oop_iterate_elements_range(mark_closure(),
                                    checked_cast<int>(start),
                                    checked_cast<int>(end));
  }
  

*** 93,11 ***
      assert(_bitmap->is_marked(task.to_partial_array_state()->source()), "should be marked");
      process_partial_array(task.to_partial_array_state(), stolen);
    } else {
      oop obj = task.to_oop();
      assert(_bitmap->is_marked(obj), "should be marked");
!     if (obj->is_objArray()) {
        // Handle object arrays explicitly to allow them to
        // be split into chunks if needed.
        start_partial_array_processing((objArrayOop)obj);
      } else {
        obj->oop_iterate(mark_closure());
--- 94,11 ---
      assert(_bitmap->is_marked(task.to_partial_array_state()->source()), "should be marked");
      process_partial_array(task.to_partial_array_state(), stolen);
    } else {
      oop obj = task.to_oop();
      assert(_bitmap->is_marked(obj), "should be marked");
!     if (obj->is_array_with_oops()) {
        // Handle object arrays explicitly to allow them to
        // be split into chunks if needed.
        start_partial_array_processing((objArrayOop)obj);
      } else {
        obj->oop_iterate(mark_closure());
< prev index next >