51 typeArrayOop allocate_instance(int length, TRAPS) { return allocate_common(length, true, THREAD); }
52 public:
53 TypeArrayKlass() {} // For dummy objects.
54
55 // instance variables
56 jint max_length() { return _max_length; }
57 void set_max_length(jint m) { _max_length = m; }
58
59 u2 compute_modifier_flags() const;
60
61 // testers
62 DEBUG_ONLY(bool is_typeArray_klass_slow() const { return true; })
63
64 // klass allocation
65 static TypeArrayKlass* create_klass(BasicType type, const char* name_str,
66 TRAPS);
67 static TypeArrayKlass* create_klass(BasicType type, TRAPS) {
68 return create_klass(type, external_name(type), THREAD);
69 }
70
71 size_t oop_size(oop obj) const;
72
73 // Allocation
74 oop multi_allocate(int rank, jint* sizes, TRAPS);
75
76 oop protection_domain() const { return nullptr; }
77
78 // Copying
79 void copy_array(arrayOop s, int src_pos, arrayOop d, int dst_pos, int length, TRAPS);
80
81 // Oop iterators. Since there are no oops in TypeArrayKlasses,
82 // these functions only return the size of the object.
83
84 private:
85 // The implementation used by all oop_oop_iterate functions in TypeArrayKlasses.
86 inline void oop_oop_iterate_impl(oop obj, OopIterateClosure* closure);
87
88 public:
89 // Wraps oop_oop_iterate_impl to conform to macros.
90 template <typename T, typename OopClosureType>
91 inline void oop_oop_iterate(oop obj, OopClosureType* closure);
|
51 typeArrayOop allocate_instance(int length, TRAPS) { return allocate_common(length, true, THREAD); }
52 public:
53 TypeArrayKlass() {} // For dummy objects.
54
55 // instance variables
56 jint max_length() { return _max_length; }
57 void set_max_length(jint m) { _max_length = m; }
58
59 u2 compute_modifier_flags() const;
60
61 // testers
62 DEBUG_ONLY(bool is_typeArray_klass_slow() const { return true; })
63
64 // klass allocation
65 static TypeArrayKlass* create_klass(BasicType type, const char* name_str,
66 TRAPS);
67 static TypeArrayKlass* create_klass(BasicType type, TRAPS) {
68 return create_klass(type, external_name(type), THREAD);
69 }
70
71 size_t oop_size(oop obj, markWord mark) const;
72
73 // Allocation
74 oop multi_allocate(int rank, jint* sizes, TRAPS);
75
76 oop protection_domain() const { return nullptr; }
77
78 // Copying
79 void copy_array(arrayOop s, int src_pos, arrayOop d, int dst_pos, int length, TRAPS);
80
81 // Oop iterators. Since there are no oops in TypeArrayKlasses,
82 // these functions only return the size of the object.
83
84 private:
85 // The implementation used by all oop_oop_iterate functions in TypeArrayKlasses.
86 inline void oop_oop_iterate_impl(oop obj, OopIterateClosure* closure);
87
88 public:
89 // Wraps oop_oop_iterate_impl to conform to macros.
90 template <typename T, typename OopClosureType>
91 inline void oop_oop_iterate(oop obj, OopClosureType* closure);
|