70 oop protection_domain() const { return NULL; } |
70 oop protection_domain() const { return NULL; } |
71 |
71 |
72 // Copying |
72 // Copying |
73 void copy_array(arrayOop s, int src_pos, arrayOop d, int dst_pos, int length, TRAPS); |
73 void copy_array(arrayOop s, int src_pos, arrayOop d, int dst_pos, int length, TRAPS); |
74 |
74 |
75 // Iteration |
75 // GC specific object visitors |
76 int oop_oop_iterate(oop obj, ExtendedOopClosure* blk); |
76 // |
77 int oop_oop_iterate_m(oop obj, ExtendedOopClosure* blk, MemRegion mr); |
77 // Mark Sweep |
|
78 void oop_ms_follow_contents(oop obj); |
|
79 int oop_ms_adjust_pointers(oop obj); |
|
80 #if INCLUDE_ALL_GCS |
|
81 // Parallel Scavenge |
|
82 void oop_ps_push_contents( oop obj, PSPromotionManager* pm); |
|
83 // Parallel Compact |
|
84 void oop_pc_follow_contents(oop obj, ParCompactionManager* cm); |
|
85 void oop_pc_update_pointers(oop obj); |
|
86 #endif |
78 |
87 |
79 // Garbage collection |
88 // Oop iterators. Since there are no oops in TypeArrayKlasses, |
80 void oop_follow_contents(oop obj); |
89 // these functions only return the size of the object. |
81 int oop_adjust_pointers(oop obj); |
|
82 |
90 |
83 // Parallel Scavenge and Parallel Old |
91 private: |
84 PARALLEL_GC_DECLS |
92 // The implementation used by all oop_oop_iterate functions in TypeArrayKlasses. |
|
93 inline int oop_oop_iterate_impl(oop obj, ExtendedOopClosure* closure); |
|
94 |
|
95 public: |
|
96 |
|
97 #define TypeArrayKlass_OOP_OOP_ITERATE_DECL(OopClosureType, nv_suffix) \ |
|
98 int oop_oop_iterate##nv_suffix(oop obj, OopClosureType* closure); \ |
|
99 int oop_oop_iterate##nv_suffix##_m(oop obj, OopClosureType* closure, \ |
|
100 MemRegion mr); \ |
|
101 int oop_oop_iterate_range##nv_suffix(oop obj, OopClosureType* closure, \ |
|
102 int start, int end); |
|
103 |
|
104 ALL_OOP_OOP_ITERATE_CLOSURES_1(TypeArrayKlass_OOP_OOP_ITERATE_DECL) |
|
105 ALL_OOP_OOP_ITERATE_CLOSURES_2(TypeArrayKlass_OOP_OOP_ITERATE_DECL) |
|
106 |
|
107 #if INCLUDE_ALL_GCS |
|
108 #define TypeArrayKlass_OOP_OOP_ITERATE_BACKWARDS_DECL(OopClosureType, nv_suffix) \ |
|
109 int oop_oop_iterate_backwards##nv_suffix(oop obj, OopClosureType* closure); |
|
110 |
|
111 ALL_OOP_OOP_ITERATE_CLOSURES_1(TypeArrayKlass_OOP_OOP_ITERATE_BACKWARDS_DECL) |
|
112 ALL_OOP_OOP_ITERATE_CLOSURES_2(TypeArrayKlass_OOP_OOP_ITERATE_BACKWARDS_DECL) |
|
113 #endif // INCLUDE_ALL_GCS |
|
114 |
85 |
115 |
86 protected: |
116 protected: |
87 // Find n'th dimensional array |
117 // Find n'th dimensional array |
88 virtual Klass* array_klass_impl(bool or_null, int n, TRAPS); |
118 virtual Klass* array_klass_impl(bool or_null, int n, TRAPS); |
89 |
119 |