< prev index next >

src/hotspot/share/oops/instanceKlass.hpp

8211446: Replace oop_pc_follow_contents with oop_iterate and closure

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_follow_contents(oop obj, ParCompactionManager* cm);                                                          
1193   void oop_pc_update_pointers(oop obj, ParCompactionManager* cm);                                                          
1194 #endif                                                                                                                     
1195 
1196   // Oop fields (and metadata) iterators                                                                                   
1197   //                                                                                                                       
1198   // The InstanceKlass iterators also visits the Object's klass.                                                           
1199 
1200   // Forward iteration                                                                                                     
1201  public:                                                                                                                   
1202   // Iterate over all oop fields in the oop maps.                                                                          
1203   template <typename T, class OopClosureType>                                                                              
1204   inline void oop_oop_iterate_oop_maps(oop obj, OopClosureType* closure);                                                  
1205 
1206   // Iterate over all oop fields and metadata.                                                                             
1207   template <typename T, class OopClosureType>                                                                              
1208   inline int oop_oop_iterate(oop obj, OopClosureType* closure);                                                            
1209 
1210   // Iterate over all oop fields in one oop map.                                                                           
1211   template <typename T, class OopClosureType>                                                                              

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>
< prev index next >