src/share/vm/oops/objArrayKlass.cpp

Print this page




 570   // Don't call size() or oop_size() since that is a virtual call.
 571   int size = a->object_size();
 572   ObjArrayKlass_OOP_ITERATE(a, p, MarkSweep::adjust_pointer(p))
 573   return size;
 574 }
 575 
 576 #if INCLUDE_ALL_GCS
 577 void ObjArrayKlass::oop_push_contents(PSPromotionManager* pm, oop obj) {
 578   assert(obj->is_objArray(), "obj must be obj array");
 579   ObjArrayKlass_OOP_ITERATE( \
 580     objArrayOop(obj), p, \
 581     if (PSScavenge::should_scavenge(p)) { \
 582       pm->claim_or_forward_depth(p); \
 583     })
 584 }
 585 
 586 int ObjArrayKlass::oop_update_pointers(ParCompactionManager* cm, oop obj) {
 587   assert (obj->is_objArray(), "obj must be obj array");
 588   objArrayOop a = objArrayOop(obj);
 589   int size = a->object_size();
 590   a->update_header(cm);
 591   ObjArrayKlass_OOP_ITERATE(a, p, PSParallelCompact::adjust_pointer(p))
 592   return size;
 593 }
 594 #endif // INCLUDE_ALL_GCS
 595 
 596 // JVM support
 597 
 598 jint ObjArrayKlass::compute_modifier_flags(TRAPS) const {
 599   // The modifier for an objectArray is the same as its element
 600   if (element_klass() == NULL) {
 601     assert(Universe::is_bootstrapping(), "partial objArray only at startup");
 602     return JVM_ACC_ABSTRACT | JVM_ACC_FINAL | JVM_ACC_PUBLIC;
 603   }
 604   // Return the flags of the bottom element type.
 605   jint element_flags = bottom_klass()->compute_modifier_flags(CHECK_0);
 606 
 607   return (element_flags & (JVM_ACC_PUBLIC | JVM_ACC_PRIVATE | JVM_ACC_PROTECTED))
 608                         | (JVM_ACC_ABSTRACT | JVM_ACC_FINAL);
 609 }
 610 




 570   // Don't call size() or oop_size() since that is a virtual call.
 571   int size = a->object_size();
 572   ObjArrayKlass_OOP_ITERATE(a, p, MarkSweep::adjust_pointer(p))
 573   return size;
 574 }
 575 
 576 #if INCLUDE_ALL_GCS
 577 void ObjArrayKlass::oop_push_contents(PSPromotionManager* pm, oop obj) {
 578   assert(obj->is_objArray(), "obj must be obj array");
 579   ObjArrayKlass_OOP_ITERATE( \
 580     objArrayOop(obj), p, \
 581     if (PSScavenge::should_scavenge(p)) { \
 582       pm->claim_or_forward_depth(p); \
 583     })
 584 }
 585 
 586 int ObjArrayKlass::oop_update_pointers(ParCompactionManager* cm, oop obj) {
 587   assert (obj->is_objArray(), "obj must be obj array");
 588   objArrayOop a = objArrayOop(obj);
 589   int size = a->object_size();

 590   ObjArrayKlass_OOP_ITERATE(a, p, PSParallelCompact::adjust_pointer(p))
 591   return size;
 592 }
 593 #endif // INCLUDE_ALL_GCS
 594 
 595 // JVM support
 596 
 597 jint ObjArrayKlass::compute_modifier_flags(TRAPS) const {
 598   // The modifier for an objectArray is the same as its element
 599   if (element_klass() == NULL) {
 600     assert(Universe::is_bootstrapping(), "partial objArray only at startup");
 601     return JVM_ACC_ABSTRACT | JVM_ACC_FINAL | JVM_ACC_PUBLIC;
 602   }
 603   // Return the flags of the bottom element type.
 604   jint element_flags = bottom_klass()->compute_modifier_flags(CHECK_0);
 605 
 606   return (element_flags & (JVM_ACC_PUBLIC | JVM_ACC_PRIVATE | JVM_ACC_PROTECTED))
 607                         | (JVM_ACC_ABSTRACT | JVM_ACC_FINAL);
 608 }
 609