< prev index next >

src/hotspot/share/oops/instanceKlass.hpp

Print this page




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()) {


< prev index next >