1054 (is_anonymous ? (int)sizeof(Klass*)/wordSize : 0) +
1055 (has_stored_fingerprint ? (int)sizeof(uint64_t*)/wordSize : 0));
1056 }
1057 int size() const { return size(vtable_length(),
1058 itable_length(),
1059 nonstatic_oop_map_size(),
1060 is_interface(),
1061 is_anonymous(),
1062 has_stored_fingerprint());
1063 }
1064 #if INCLUDE_SERVICES
1065 virtual void collect_statistics(KlassSizeStats *sz) const;
1066 #endif
1067
1068 intptr_t* start_of_itable() const { return (intptr_t*)start_of_vtable() + vtable_length(); }
1069 intptr_t* end_of_itable() const { return start_of_itable() + itable_length(); }
1070
1071 int itable_offset_in_words() const { return start_of_itable() - (intptr_t*)this; }
1072
1073 address static_field_addr(int offset);
1074
1075 OopMapBlock* start_of_nonstatic_oop_maps() const {
1076 return (OopMapBlock*)(start_of_itable() + itable_length());
1077 }
1078
1079 Klass** end_of_nonstatic_oop_maps() const {
1080 return (Klass**)(start_of_nonstatic_oop_maps() +
1081 nonstatic_oop_map_count());
1082 }
1083
1084 Klass** adr_implementor() const {
1085 if (is_interface()) {
1086 return (Klass**)end_of_nonstatic_oop_maps();
1087 } else {
1088 return NULL;
1089 }
1090 };
1091
1092 InstanceKlass** adr_host_klass() const {
1093 if (is_anonymous()) {
|
1054 (is_anonymous ? (int)sizeof(Klass*)/wordSize : 0) +
1055 (has_stored_fingerprint ? (int)sizeof(uint64_t*)/wordSize : 0));
1056 }
1057 int size() const { return size(vtable_length(),
1058 itable_length(),
1059 nonstatic_oop_map_size(),
1060 is_interface(),
1061 is_anonymous(),
1062 has_stored_fingerprint());
1063 }
1064 #if INCLUDE_SERVICES
1065 virtual void collect_statistics(KlassSizeStats *sz) const;
1066 #endif
1067
1068 intptr_t* start_of_itable() const { return (intptr_t*)start_of_vtable() + vtable_length(); }
1069 intptr_t* end_of_itable() const { return start_of_itable() + itable_length(); }
1070
1071 int itable_offset_in_words() const { return start_of_itable() - (intptr_t*)this; }
1072
1073 address static_field_addr(int offset);
1074 oop static_oop_field(int offset);
1075
1076 OopMapBlock* start_of_nonstatic_oop_maps() const {
1077 return (OopMapBlock*)(start_of_itable() + itable_length());
1078 }
1079
1080 Klass** end_of_nonstatic_oop_maps() const {
1081 return (Klass**)(start_of_nonstatic_oop_maps() +
1082 nonstatic_oop_map_count());
1083 }
1084
1085 Klass** adr_implementor() const {
1086 if (is_interface()) {
1087 return (Klass**)end_of_nonstatic_oop_maps();
1088 } else {
1089 return NULL;
1090 }
1091 };
1092
1093 InstanceKlass** adr_host_klass() const {
1094 if (is_anonymous()) {
|