1248 public:
1249 // Iterate over all oop fields in the oop maps.
1250 template <typename T, class OopClosureType>
1251 inline void oop_oop_iterate_oop_maps_bounded(oop obj, OopClosureType* closure, MemRegion mr);
1252
1253 // Iterate over all oop fields and metadata.
1254 template <typename T, class OopClosureType>
1255 inline void oop_oop_iterate_bounded(oop obj, OopClosureType* closure, MemRegion mr);
1256
1257 private:
1258 // Iterate over all oop fields in one oop map.
1259 template <typename T, class OopClosureType>
1260 inline void oop_oop_iterate_oop_map_bounded(OopMapBlock* map, oop obj, OopClosureType* closure, MemRegion mr);
1261
1262
1263 public:
1264 u2 idnum_allocated_count() const { return _idnum_allocated_count; }
1265
1266 public:
1267 void set_in_error_state() {
1268 assert(DumpSharedSpaces, "only call this when dumping archive");
1269 _init_state = initialization_error;
1270 }
1271 bool check_sharing_error_state();
1272
1273 private:
1274 // initialization state
1275 void set_init_state(ClassState state);
1276 void set_rewritten() { _misc_flags |= _misc_rewritten; }
1277 void set_init_thread(Thread *thread) { _init_thread = thread; }
1278
1279 // The RedefineClasses() API can cause new method idnums to be needed
1280 // which will cause the caches to grow. Safety requires different
1281 // cache management logic if the caches can grow instead of just
1282 // going from NULL to non-NULL.
1283 bool idnum_can_increment() const { return has_been_redefined(); }
1284 inline jmethodID* methods_jmethod_ids_acquire() const;
1285 inline void release_set_methods_jmethod_ids(jmethodID* jmeths);
1286
1287 // Lock during initialization
1288 public:
|
1248 public:
1249 // Iterate over all oop fields in the oop maps.
1250 template <typename T, class OopClosureType>
1251 inline void oop_oop_iterate_oop_maps_bounded(oop obj, OopClosureType* closure, MemRegion mr);
1252
1253 // Iterate over all oop fields and metadata.
1254 template <typename T, class OopClosureType>
1255 inline void oop_oop_iterate_bounded(oop obj, OopClosureType* closure, MemRegion mr);
1256
1257 private:
1258 // Iterate over all oop fields in one oop map.
1259 template <typename T, class OopClosureType>
1260 inline void oop_oop_iterate_oop_map_bounded(OopMapBlock* map, oop obj, OopClosureType* closure, MemRegion mr);
1261
1262
1263 public:
1264 u2 idnum_allocated_count() const { return _idnum_allocated_count; }
1265
1266 public:
1267 void set_in_error_state() {
1268 Arguments::assert_is_dumping_archive();
1269 _init_state = initialization_error;
1270 }
1271 bool check_sharing_error_state();
1272
1273 private:
1274 // initialization state
1275 void set_init_state(ClassState state);
1276 void set_rewritten() { _misc_flags |= _misc_rewritten; }
1277 void set_init_thread(Thread *thread) { _init_thread = thread; }
1278
1279 // The RedefineClasses() API can cause new method idnums to be needed
1280 // which will cause the caches to grow. Safety requires different
1281 // cache management logic if the caches can grow instead of just
1282 // going from NULL to non-NULL.
1283 bool idnum_can_increment() const { return has_been_redefined(); }
1284 inline jmethodID* methods_jmethod_ids_acquire() const;
1285 inline void release_set_methods_jmethod_ids(jmethodID* jmeths);
1286
1287 // Lock during initialization
1288 public:
|