44 // Constructor
45 TypeArrayKlass(BasicType type, Symbol* name);
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 // testers
55 DEBUG_ONLY(bool is_typeArray_klass_slow() const { return true; })
56
57 // klass allocation
58 static TypeArrayKlass* create_klass(BasicType type, const char* name_str,
59 TRAPS);
60 static TypeArrayKlass* create_klass(BasicType type, TRAPS) {
61 return create_klass(type, external_name(type), THREAD);
62 }
63
64 size_t oop_size(oop obj) const;
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 nullptr; }
72
73 // Copying
74 void copy_array(arrayOop s, int src_pos, arrayOop d, int dst_pos, int length, TRAPS);
75
76 // Oop iterators. Since there are no oops in TypeArrayKlasses,
77 // these functions only return the size of the object.
78
79 private:
80 // The implementation used by all oop_oop_iterate functions in TypeArrayKlasses.
81 inline void oop_oop_iterate_impl(oop obj, OopIterateClosure* closure);
82
83 public:
84 // Wraps oop_oop_iterate_impl to conform to macros.
|
44 // Constructor
45 TypeArrayKlass(BasicType type, Symbol* name);
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 // testers
55 DEBUG_ONLY(bool is_typeArray_klass_slow() const { return true; })
56
57 // klass allocation
58 static TypeArrayKlass* create_klass(BasicType type, const char* name_str,
59 TRAPS);
60 static TypeArrayKlass* create_klass(BasicType type, TRAPS) {
61 return create_klass(type, external_name(type), THREAD);
62 }
63
64 size_t oop_size(oop obj, markWord mark) const;
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 nullptr; }
72
73 // Copying
74 void copy_array(arrayOop s, int src_pos, arrayOop d, int dst_pos, int length, TRAPS);
75
76 // Oop iterators. Since there are no oops in TypeArrayKlasses,
77 // these functions only return the size of the object.
78
79 private:
80 // The implementation used by all oop_oop_iterate functions in TypeArrayKlasses.
81 inline void oop_oop_iterate_impl(oop obj, OopIterateClosure* closure);
82
83 public:
84 // Wraps oop_oop_iterate_impl to conform to macros.
|