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_follow_contents(oop obj, ParCompactionManager* cm);
82 void oop_pc_update_pointers(oop obj, ParCompactionManager* cm);
83 #endif
84
85 // Oop iterators. Since there are no oops in TypeArrayKlasses,
86 // these functions only return the size of the object.
87
88 private:
89 // The implementation used by all oop_oop_iterate functions in TypeArrayKlasses.
90 inline void oop_oop_iterate_impl(oop obj, OopIterateClosure* closure);
91
92 public:
93 // Wraps oop_oop_iterate_impl to conform to macros.
94 template <typename T, typename OopClosureType>
95 inline void oop_oop_iterate(oop obj, OopClosureType* closure);
96
97 // Wraps oop_oop_iterate_impl to conform to macros.
98 template <typename T, typename OopClosureType>
99 inline void oop_oop_iterate_bounded(oop obj, OopClosureType* closure, MemRegion mr);
100
|
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
|