src/hotspot/share/gc/g1/g1FullGCMarker.inline.hpp
changeset 49447 657893cb281b
parent 47885 5caa1d5f74c1
child 49592 77fb0be7d19f
equal deleted inserted replaced
49411:7a656b77a2d8 49447:657893cb281b
   105   assert(beg_index < len || len == 0, "index too large");
   105   assert(beg_index < len || len == 0, "index too large");
   106 
   106 
   107   const int stride = MIN2(len - beg_index, (int) ObjArrayMarkingStride);
   107   const int stride = MIN2(len - beg_index, (int) ObjArrayMarkingStride);
   108   const int end_index = beg_index + stride;
   108   const int end_index = beg_index + stride;
   109 
   109 
       
   110   // Push the continuation first to allow more efficient work stealing.
       
   111   if (end_index < len) {
       
   112     push_objarray(array, end_index);
       
   113   }
       
   114 
   110   array->oop_iterate_range(mark_closure(), beg_index, end_index);
   115   array->oop_iterate_range(mark_closure(), beg_index, end_index);
   111 
   116 
   112   if (VerifyDuringGC) {
   117   if (VerifyDuringGC) {
   113     _verify_closure.set_containing_obj(array);
   118     _verify_closure.set_containing_obj(array);
   114     NoHeaderExtendedOopClosure no(&_verify_closure);
   119     NoHeaderExtendedOopClosure no(&_verify_closure);
   115     array->oop_iterate_range(&no, beg_index, end_index);
   120     array->oop_iterate_range(&no, beg_index, end_index);
   116     if (_verify_closure.failures()) {
   121     if (_verify_closure.failures()) {
   117       assert(false, "Failed");
   122       assert(false, "Failed");
   118     }
   123     }
   119   }
       
   120 
       
   121   if (end_index < len) {
       
   122     push_objarray(array, end_index); // Push the continuation.
       
   123   }
   124   }
   124 }
   125 }
   125 
   126 
   126 inline void G1FullGCMarker::follow_object(oop obj) {
   127 inline void G1FullGCMarker::follow_object(oop obj) {
   127   assert(_bitmap->is_marked(obj), "should be marked");
   128   assert(_bitmap->is_marked(obj), "should be marked");