55 static inline Klass* create_klass(BasicType type, int scale, TRAPS) {
56 TypeArrayKlass* tak = create_klass(type, external_name(type), CHECK_NULL);
57 assert(scale == (1 << tak->log2_element_size()), "scale must check out");
58 return tak;
59 }
60
61 int oop_size(oop obj) const;
62
63 bool compute_is_subtype_of(Klass* k);
64
65 // Allocation
66 typeArrayOop allocate_common(int length, bool do_zero, TRAPS);
67 typeArrayOop allocate(int length, TRAPS) { return allocate_common(length, true, THREAD); }
68 oop multi_allocate(int rank, jint* sizes, TRAPS);
69
70 oop protection_domain() const { return NULL; }
71
72 // Copying
73 void copy_array(arrayOop s, int src_pos, arrayOop d, int dst_pos, int length, TRAPS);
74
75 // Iteration
76 int oop_oop_iterate(oop obj, ExtendedOopClosure* blk);
77 int oop_oop_iterate_m(oop obj, ExtendedOopClosure* blk, MemRegion mr);
78
79 // Garbage collection
80 void oop_follow_contents(oop obj);
81 int oop_adjust_pointers(oop obj);
82
83 // Parallel Scavenge and Parallel Old
84 PARALLEL_GC_DECLS
85
86 protected:
87 // Find n'th dimensional array
88 virtual Klass* array_klass_impl(bool or_null, int n, TRAPS);
89
90 // Returns the array class with this class as element type
91 virtual Klass* array_klass_impl(bool or_null, TRAPS);
92
93 public:
94 // Casting from Klass*
|
55 static inline Klass* create_klass(BasicType type, int scale, TRAPS) {
56 TypeArrayKlass* tak = create_klass(type, external_name(type), CHECK_NULL);
57 assert(scale == (1 << tak->log2_element_size()), "scale must check out");
58 return tak;
59 }
60
61 int oop_size(oop obj) const;
62
63 bool compute_is_subtype_of(Klass* k);
64
65 // Allocation
66 typeArrayOop allocate_common(int length, bool do_zero, TRAPS);
67 typeArrayOop allocate(int length, TRAPS) { return allocate_common(length, true, THREAD); }
68 oop multi_allocate(int rank, jint* sizes, TRAPS);
69
70 oop protection_domain() const { return NULL; }
71
72 // Copying
73 void copy_array(arrayOop s, int src_pos, arrayOop d, int dst_pos, int length, TRAPS);
74
75 int get_linear_oop_intervals(oop obj, OopInterval* &start, int &size);
76
77 // Iteration
78 int oop_oop_iterate(oop obj, ExtendedOopClosure* blk);
79 int oop_oop_iterate_m(oop obj, ExtendedOopClosure* blk, MemRegion mr);
80
81 // Garbage collection
82 void oop_follow_contents(oop obj);
83 int oop_adjust_pointers(oop obj);
84
85 // Parallel Scavenge and Parallel Old
86 PARALLEL_GC_DECLS
87
88 protected:
89 // Find n'th dimensional array
90 virtual Klass* array_klass_impl(bool or_null, int n, TRAPS);
91
92 // Returns the array class with this class as element type
93 virtual Klass* array_klass_impl(bool or_null, TRAPS);
94
95 public:
96 // Casting from Klass*
|