1177 // callbacks for actions during class unloading
1178 static void unload_class(InstanceKlass* ik);
1179 static void release_C_heap_structures(InstanceKlass* ik);
1180
1181 // Naming
1182 const char* signature_name() const;
1183 static Symbol* package_from_name(const Symbol* name, TRAPS);
1184
1185 // Oop fields (and metadata) iterators
1186 //
1187 // The InstanceKlass iterators also visits the Object's klass.
1188
1189 // Forward iteration
1190 public:
1191 // Iterate over all oop fields in the oop maps.
1192 template <typename T, class OopClosureType>
1193 inline void oop_oop_iterate_oop_maps(oop obj, OopClosureType* closure);
1194
1195 // Iterate over all oop fields and metadata.
1196 template <typename T, class OopClosureType>
1197 inline int oop_oop_iterate(oop obj, OopClosureType* closure);
1198
1199 // Iterate over all oop fields in one oop map.
1200 template <typename T, class OopClosureType>
1201 inline void oop_oop_iterate_oop_map(OopMapBlock* map, oop obj, OopClosureType* closure);
1202
1203
1204 // Reverse iteration
1205 // Iterate over all oop fields and metadata.
1206 template <typename T, class OopClosureType>
1207 inline int oop_oop_iterate_reverse(oop obj, OopClosureType* closure);
1208
1209 private:
1210 // Iterate over all oop fields in the oop maps.
1211 template <typename T, class OopClosureType>
1212 inline void oop_oop_iterate_oop_maps_reverse(oop obj, OopClosureType* closure);
1213
1214 // Iterate over all oop fields in one oop map.
1215 template <typename T, class OopClosureType>
1216 inline void oop_oop_iterate_oop_map_reverse(OopMapBlock* map, oop obj, OopClosureType* closure);
1217
1218
1219 // Bounded range iteration
1220 public:
1221 // Iterate over all oop fields in the oop maps.
1222 template <typename T, class OopClosureType>
1223 inline void oop_oop_iterate_oop_maps_bounded(oop obj, OopClosureType* closure, MemRegion mr);
1224
1225 // Iterate over all oop fields and metadata.
1226 template <typename T, class OopClosureType>
1227 inline int oop_oop_iterate_bounded(oop obj, OopClosureType* closure, MemRegion mr);
1228
1229 private:
1230 // Iterate over all oop fields in one oop map.
1231 template <typename T, class OopClosureType>
1232 inline void oop_oop_iterate_oop_map_bounded(OopMapBlock* map, oop obj, OopClosureType* closure, MemRegion mr);
1233
1234
1235 public:
1236 u2 idnum_allocated_count() const { return _idnum_allocated_count; }
1237
1238 public:
1239 void set_in_error_state() {
1240 assert(DumpSharedSpaces, "only call this when dumping archive");
1241 _init_state = initialization_error;
1242 }
1243 bool check_sharing_error_state();
1244
1245 private:
1246 // initialization state
|
1177 // callbacks for actions during class unloading
1178 static void unload_class(InstanceKlass* ik);
1179 static void release_C_heap_structures(InstanceKlass* ik);
1180
1181 // Naming
1182 const char* signature_name() const;
1183 static Symbol* package_from_name(const Symbol* name, TRAPS);
1184
1185 // Oop fields (and metadata) iterators
1186 //
1187 // The InstanceKlass iterators also visits the Object's klass.
1188
1189 // Forward iteration
1190 public:
1191 // Iterate over all oop fields in the oop maps.
1192 template <typename T, class OopClosureType>
1193 inline void oop_oop_iterate_oop_maps(oop obj, OopClosureType* closure);
1194
1195 // Iterate over all oop fields and metadata.
1196 template <typename T, class OopClosureType>
1197 inline void oop_oop_iterate(oop obj, OopClosureType* closure);
1198
1199 // Iterate over all oop fields in one oop map.
1200 template <typename T, class OopClosureType>
1201 inline void oop_oop_iterate_oop_map(OopMapBlock* map, oop obj, OopClosureType* closure);
1202
1203
1204 // Reverse iteration
1205 // Iterate over all oop fields and metadata.
1206 template <typename T, class OopClosureType>
1207 inline void oop_oop_iterate_reverse(oop obj, OopClosureType* closure);
1208
1209 private:
1210 // Iterate over all oop fields in the oop maps.
1211 template <typename T, class OopClosureType>
1212 inline void oop_oop_iterate_oop_maps_reverse(oop obj, OopClosureType* closure);
1213
1214 // Iterate over all oop fields in one oop map.
1215 template <typename T, class OopClosureType>
1216 inline void oop_oop_iterate_oop_map_reverse(OopMapBlock* map, oop obj, OopClosureType* closure);
1217
1218
1219 // Bounded range iteration
1220 public:
1221 // Iterate over all oop fields in the oop maps.
1222 template <typename T, class OopClosureType>
1223 inline void oop_oop_iterate_oop_maps_bounded(oop obj, OopClosureType* closure, MemRegion mr);
1224
1225 // Iterate over all oop fields and metadata.
1226 template <typename T, class OopClosureType>
1227 inline void oop_oop_iterate_bounded(oop obj, OopClosureType* closure, MemRegion mr);
1228
1229 private:
1230 // Iterate over all oop fields in one oop map.
1231 template <typename T, class OopClosureType>
1232 inline void oop_oop_iterate_oop_map_bounded(OopMapBlock* map, oop obj, OopClosureType* closure, MemRegion mr);
1233
1234
1235 public:
1236 u2 idnum_allocated_count() const { return _idnum_allocated_count; }
1237
1238 public:
1239 void set_in_error_state() {
1240 assert(DumpSharedSpaces, "only call this when dumping archive");
1241 _init_state = initialization_error;
1242 }
1243 bool check_sharing_error_state();
1244
1245 private:
1246 // initialization state
|