< prev index next >

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

Print this page
@@ -180,17 +180,18 @@
    }
    check_limits();
  }
  
  inline bool G1CMTask::should_be_sliced(oop obj) {
-   return obj->is_objArray() && ((objArrayOop)obj)->length() >= (int)ObjArrayMarkingStride;
+   return obj->is_refArray() && ((refArrayOop)obj)->length() >= (int)ObjArrayMarkingStride;
  }
  
  inline void G1CMTask::process_array_chunk(objArrayOop obj, size_t start, size_t end) {
-   obj->oop_iterate_elements_range(_cm_oop_closure,
-                                   checked_cast<int>(start),
-                                   checked_cast<int>(end));
+   assert(obj->is_refArray(), "Must be");
+   refArrayOop(obj)->oop_iterate_elements_range(_cm_oop_closure,
+                                                checked_cast<int>(start),
+                                                checked_cast<int>(end));
  }
  
  inline void G1ConcurrentMark::update_top_at_mark_start(G1HeapRegion* r) {
    uint const region = r->hrm_index();
    assert(region < _g1h->max_num_regions(), "Tried to access TAMS for region %u out of bounds", region);
< prev index next >