hotspot/src/share/vm/classfile/javaClasses.cpp
changeset 25465 17a6bddcfa5d
parent 25326 85b2f2e63e3e
child 25624 b3bd733f04e9
equal deleted inserted replaced
25464:309af3e40a0f 25465:17a6bddcfa5d
   616         comp_mirror = element_klass->java_mirror();
   616         comp_mirror = element_klass->java_mirror();
   617       }
   617       }
   618       assert(comp_mirror.not_null(), "must have a mirror");
   618       assert(comp_mirror.not_null(), "must have a mirror");
   619 
   619 
   620       // Two-way link between the array klass and its component mirror:
   620       // Two-way link between the array klass and its component mirror:
       
   621       // (array_klass) k -> mirror -> component_mirror -> array_klass -> k
       
   622       set_component_mirror(mirror(), comp_mirror());
   621       ArrayKlass::cast(k())->set_component_mirror(comp_mirror());
   623       ArrayKlass::cast(k())->set_component_mirror(comp_mirror());
   622       set_array_klass(comp_mirror(), k());
   624       set_array_klass(comp_mirror(), k());
   623     } else {
   625     } else {
   624       assert(k->oop_is_instance(), "Must be");
   626       assert(k->oop_is_instance(), "Must be");
   625 
   627 
   675   return java_class->obj_field(_protection_domain_offset);
   677   return java_class->obj_field(_protection_domain_offset);
   676 }
   678 }
   677 void java_lang_Class::set_protection_domain(oop java_class, oop pd) {
   679 void java_lang_Class::set_protection_domain(oop java_class, oop pd) {
   678   assert(_protection_domain_offset != 0, "must be set");
   680   assert(_protection_domain_offset != 0, "must be set");
   679   java_class->obj_field_put(_protection_domain_offset, pd);
   681   java_class->obj_field_put(_protection_domain_offset, pd);
       
   682 }
       
   683 
       
   684 void java_lang_Class::set_component_mirror(oop java_class, oop comp_mirror) {
       
   685   if (_component_mirror_offset != 0) {
       
   686     java_class->obj_field_put(_component_mirror_offset, comp_mirror);
       
   687   }
       
   688 }
       
   689 oop java_lang_Class::component_mirror(oop java_class) {
       
   690   assert(_component_mirror_offset != 0, "must be set");
       
   691   return java_class->obj_field(_component_mirror_offset);
   680 }
   692 }
   681 
   693 
   682 oop java_lang_Class::init_lock(oop java_class) {
   694 oop java_lang_Class::init_lock(oop java_class) {
   683   assert(_init_lock_offset != 0, "must be set");
   695   assert(_init_lock_offset != 0, "must be set");
   684   return java_class->obj_field(_init_lock_offset);
   696   return java_class->obj_field(_init_lock_offset);
   872   // Needs to be optional because the old build runs Queens during bootstrapping
   884   // Needs to be optional because the old build runs Queens during bootstrapping
   873   // and jdk8-9 doesn't have coordinated pushes yet.
   885   // and jdk8-9 doesn't have coordinated pushes yet.
   874   compute_optional_offset(_class_loader_offset,
   886   compute_optional_offset(_class_loader_offset,
   875                  klass_oop, vmSymbols::classLoader_name(),
   887                  klass_oop, vmSymbols::classLoader_name(),
   876                  vmSymbols::classloader_signature());
   888                  vmSymbols::classloader_signature());
       
   889 
       
   890   compute_optional_offset(_component_mirror_offset,
       
   891                  klass_oop, vmSymbols::componentType_name(),
       
   892                  vmSymbols::class_signature());
   877 
   893 
   878   CLASS_INJECTED_FIELDS(INJECTED_FIELD_COMPUTE_OFFSET);
   894   CLASS_INJECTED_FIELDS(INJECTED_FIELD_COMPUTE_OFFSET);
   879 }
   895 }
   880 
   896 
   881 int java_lang_Class::classRedefinedCount(oop the_class_mirror) {
   897 int java_lang_Class::classRedefinedCount(oop the_class_mirror) {
  3095 int java_lang_Class::_array_klass_offset;
  3111 int java_lang_Class::_array_klass_offset;
  3096 int java_lang_Class::_oop_size_offset;
  3112 int java_lang_Class::_oop_size_offset;
  3097 int java_lang_Class::_static_oop_field_count_offset;
  3113 int java_lang_Class::_static_oop_field_count_offset;
  3098 int java_lang_Class::_class_loader_offset;
  3114 int java_lang_Class::_class_loader_offset;
  3099 int java_lang_Class::_protection_domain_offset;
  3115 int java_lang_Class::_protection_domain_offset;
       
  3116 int java_lang_Class::_component_mirror_offset;
  3100 int java_lang_Class::_init_lock_offset;
  3117 int java_lang_Class::_init_lock_offset;
  3101 int java_lang_Class::_signers_offset;
  3118 int java_lang_Class::_signers_offset;
  3102 GrowableArray<Klass*>* java_lang_Class::_fixup_mirror_list = NULL;
  3119 GrowableArray<Klass*>* java_lang_Class::_fixup_mirror_list = NULL;
  3103 int java_lang_Throwable::backtrace_offset;
  3120 int java_lang_Throwable::backtrace_offset;
  3104 int java_lang_Throwable::detailMessage_offset;
  3121 int java_lang_Throwable::detailMessage_offset;