82 } 83 84 int compute_static_oop_field_count(oop obj); 85 86 // Given a Klass return the size of the instance 87 int instance_size(Klass* k); 88 89 // allocation 90 instanceOop allocate_instance(Klass* k, TRAPS); 91 92 // GC specific object visitors 93 // 94 #if INCLUDE_PARALLELGC 95 // Parallel Scavenge 96 void oop_ps_push_contents( oop obj, PSPromotionManager* pm); 97 // Parallel Compact 98 void oop_pc_follow_contents(oop obj, ParCompactionManager* cm); 99 void oop_pc_update_pointers(oop obj, ParCompactionManager* cm); 100 #endif 101 102 // Oop fields (and metadata) iterators 103 // 104 // The InstanceMirrorKlass iterators also visit the hidden Klass pointer. 105 106 // Iterate over the static fields. 107 template <typename T, class OopClosureType> 108 inline void oop_oop_iterate_statics(oop obj, OopClosureType* closure); 109 110 // Forward iteration 111 // Iterate over the oop fields and metadata. 112 template <typename T, class OopClosureType> 113 inline void oop_oop_iterate(oop obj, OopClosureType* closure); 114 115 // Reverse iteration 116 // Iterate over the oop fields and metadata. 117 template <typename T, class OopClosureType> 118 inline void oop_oop_iterate_reverse(oop obj, OopClosureType* closure); 119 120 // Bounded range iteration 121 // Iterate over the oop fields and metadata. | 82 } 83 84 int compute_static_oop_field_count(oop obj); 85 86 // Given a Klass return the size of the instance 87 int instance_size(Klass* k); 88 89 // allocation 90 instanceOop allocate_instance(Klass* k, TRAPS); 91 92 // GC specific object visitors 93 // 94 #if INCLUDE_PARALLELGC 95 // Parallel Scavenge 96 void oop_ps_push_contents( oop obj, PSPromotionManager* pm); 97 // Parallel Compact 98 void oop_pc_follow_contents(oop obj, ParCompactionManager* cm); 99 void oop_pc_update_pointers(oop obj, ParCompactionManager* cm); 100 #endif 101 102 static void serialize(class SerializeClosure* f) NOT_CDS_RETURN; 103 104 // Oop fields (and metadata) iterators 105 // 106 // The InstanceMirrorKlass iterators also visit the hidden Klass pointer. 107 108 // Iterate over the static fields. 109 template <typename T, class OopClosureType> 110 inline void oop_oop_iterate_statics(oop obj, OopClosureType* closure); 111 112 // Forward iteration 113 // Iterate over the oop fields and metadata. 114 template <typename T, class OopClosureType> 115 inline void oop_oop_iterate(oop obj, OopClosureType* closure); 116 117 // Reverse iteration 118 // Iterate over the oop fields and metadata. 119 template <typename T, class OopClosureType> 120 inline void oop_oop_iterate_reverse(oop obj, OopClosureType* closure); 121 122 // Bounded range iteration 123 // Iterate over the oop fields and metadata. |