< prev index next >

src/hotspot/share/oops/instanceKlass.hpp

8211447: Replace oop_pc_update_pointers with oop_iterate and closure

1168   void deallocate_contents(ClassLoaderData* loader_data);                                                                  
1169   static void deallocate_methods(ClassLoaderData* loader_data,                                                             
1170                                  Array<Method*>* methods);                                                                 
1171   void static deallocate_interfaces(ClassLoaderData* loader_data,                                                          
1172                                     const Klass* super_klass,                                                              
1173                                     Array<InstanceKlass*>* local_interfaces,                                               
1174                                     Array<InstanceKlass*>* transitive_interfaces);                                         
1175 
1176   // The constant pool is on stack if any of the methods are executing or                                                  
1177   // referenced by handles.                                                                                                
1178   bool on_stack() const { return _constants->on_stack(); }                                                                 
1179 
1180   // callbacks for actions during class unloading                                                                          
1181   static void unload_class(InstanceKlass* ik);                                                                             
1182   static void release_C_heap_structures(InstanceKlass* ik);                                                                
1183 
1184   // Naming                                                                                                                
1185   const char* signature_name() const;                                                                                      
1186   static Symbol* package_from_name(const Symbol* name, TRAPS);                                                             
1187 
1188   // GC specific object visitors                                                                                           
1189   //                                                                                                                       
1190 #if INCLUDE_PARALLELGC                                                                                                     
1191   // Parallel Compact                                                                                                      
1192   void oop_pc_update_pointers(oop obj, ParCompactionManager* cm);                                                          
1193 #endif                                                                                                                     
1194                                                                                                                            
1195   // Oop fields (and metadata) iterators                                                                                   
1196   //                                                                                                                       
1197   // The InstanceKlass iterators also visits the Object's klass.                                                           
1198 
1199   // Forward iteration                                                                                                     
1200  public:                                                                                                                   
1201   // Iterate over all oop fields in the oop maps.                                                                          
1202   template <typename T, class OopClosureType>                                                                              
1203   inline void oop_oop_iterate_oop_maps(oop obj, OopClosureType* closure);                                                  
1204 
1205   // Iterate over all oop fields and metadata.                                                                             
1206   template <typename T, class OopClosureType>                                                                              
1207   inline int oop_oop_iterate(oop obj, OopClosureType* closure);                                                            
1208 
1209   // Iterate over all oop fields in one oop map.                                                                           
1210   template <typename T, class OopClosureType>                                                                              
1211   inline void oop_oop_iterate_oop_map(OopMapBlock* map, oop obj, OopClosureType* closure);                                 
1212 
1213 

1168   void deallocate_contents(ClassLoaderData* loader_data);
1169   static void deallocate_methods(ClassLoaderData* loader_data,
1170                                  Array<Method*>* methods);
1171   void static deallocate_interfaces(ClassLoaderData* loader_data,
1172                                     const Klass* super_klass,
1173                                     Array<InstanceKlass*>* local_interfaces,
1174                                     Array<InstanceKlass*>* transitive_interfaces);
1175 
1176   // The constant pool is on stack if any of the methods are executing or
1177   // referenced by handles.
1178   bool on_stack() const { return _constants->on_stack(); }
1179 
1180   // callbacks for actions during class unloading
1181   static void unload_class(InstanceKlass* ik);
1182   static void release_C_heap_structures(InstanceKlass* ik);
1183 
1184   // Naming
1185   const char* signature_name() const;
1186   static Symbol* package_from_name(const Symbol* name, TRAPS);
1187 







1188   // Oop fields (and metadata) iterators
1189   //
1190   // The InstanceKlass iterators also visits the Object's klass.
1191 
1192   // Forward iteration
1193  public:
1194   // Iterate over all oop fields in the oop maps.
1195   template <typename T, class OopClosureType>
1196   inline void oop_oop_iterate_oop_maps(oop obj, OopClosureType* closure);
1197 
1198   // Iterate over all oop fields and metadata.
1199   template <typename T, class OopClosureType>
1200   inline int oop_oop_iterate(oop obj, OopClosureType* closure);
1201 
1202   // Iterate over all oop fields in one oop map.
1203   template <typename T, class OopClosureType>
1204   inline void oop_oop_iterate_oop_map(OopMapBlock* map, oop obj, OopClosureType* closure);
1205 
1206 
< prev index next >