< prev index next >

src/hotspot/share/oops/typeArrayKlass.hpp

8211447: Replace oop_pc_update_pointers with oop_iterate and closure

56   static TypeArrayKlass* create_klass(BasicType type, const char* name_str,                                                
57                                TRAPS);                                                                                     
58   static TypeArrayKlass* create_klass(BasicType type, TRAPS) {                                                             
59     return create_klass(type, external_name(type), THREAD);                                                                
60   }                                                                                                                        
61 
62   int oop_size(oop obj) const;                                                                                             
63 
64   bool compute_is_subtype_of(Klass* k);                                                                                    
65 
66   // Allocation                                                                                                            
67   typeArrayOop allocate_common(int length, bool do_zero, TRAPS);                                                           
68   typeArrayOop allocate(int length, TRAPS) { return allocate_common(length, true, THREAD); }                               
69   oop multi_allocate(int rank, jint* sizes, TRAPS);                                                                        
70 
71   oop protection_domain() const { return NULL; }                                                                           
72 
73   // Copying                                                                                                               
74   void  copy_array(arrayOop s, int src_pos, arrayOop d, int dst_pos, int length, TRAPS);                                   
75 
76   // GC specific object visitors                                                                                           
77   //                                                                                                                       
78                                                                                                                            
79 #if INCLUDE_PARALLELGC                                                                                                     
80   // Parallel Compact                                                                                                      
81   void oop_pc_update_pointers(oop obj, ParCompactionManager* cm);                                                          
82 #endif                                                                                                                     
83                                                                                                                            
84   // Oop iterators. Since there are no oops in TypeArrayKlasses,                                                           
85   // these functions only return the size of the object.                                                                   
86 
87  private:                                                                                                                  
88   // The implementation used by all oop_oop_iterate functions in TypeArrayKlasses.                                         
89   inline void oop_oop_iterate_impl(oop obj, OopIterateClosure* closure);                                                   
90 
91  public:                                                                                                                   
92   // Wraps oop_oop_iterate_impl to conform to macros.                                                                      
93   template <typename T, typename OopClosureType>                                                                           
94   inline void oop_oop_iterate(oop obj, OopClosureType* closure);                                                           
95 
96   // Wraps oop_oop_iterate_impl to conform to macros.                                                                      
97   template <typename T, typename OopClosureType>                                                                           
98   inline void oop_oop_iterate_bounded(oop obj, OopClosureType* closure, MemRegion mr);                                     
99 
100   // Wraps oop_oop_iterate_impl to conform to macros.                                                                      
101   template <typename T, typename OopClosureType>                                                                           
102   inline void oop_oop_iterate_reverse(oop obj, OopClosureType* closure);                                                   

56   static TypeArrayKlass* create_klass(BasicType type, const char* name_str,
57                                TRAPS);
58   static TypeArrayKlass* create_klass(BasicType type, TRAPS) {
59     return create_klass(type, external_name(type), THREAD);
60   }
61 
62   int oop_size(oop obj) const;
63 
64   bool compute_is_subtype_of(Klass* k);
65 
66   // Allocation
67   typeArrayOop allocate_common(int length, bool do_zero, TRAPS);
68   typeArrayOop allocate(int length, TRAPS) { return allocate_common(length, true, THREAD); }
69   oop multi_allocate(int rank, jint* sizes, TRAPS);
70 
71   oop protection_domain() const { return NULL; }
72 
73   // Copying
74   void  copy_array(arrayOop s, int src_pos, arrayOop d, int dst_pos, int length, TRAPS);
75 








76   // Oop iterators. Since there are no oops in TypeArrayKlasses,
77   // these functions only return the size of the object.
78 
79  private:
80   // The implementation used by all oop_oop_iterate functions in TypeArrayKlasses.
81   inline void oop_oop_iterate_impl(oop obj, OopIterateClosure* closure);
82 
83  public:
84   // Wraps oop_oop_iterate_impl to conform to macros.
85   template <typename T, typename OopClosureType>
86   inline void oop_oop_iterate(oop obj, OopClosureType* closure);
87 
88   // Wraps oop_oop_iterate_impl to conform to macros.
89   template <typename T, typename OopClosureType>
90   inline void oop_oop_iterate_bounded(oop obj, OopClosureType* closure, MemRegion mr);
91 
92   // Wraps oop_oop_iterate_impl to conform to macros.
93   template <typename T, typename OopClosureType>
94   inline void oop_oop_iterate_reverse(oop obj, OopClosureType* closure);
< prev index next >