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