< prev index next >
src/hotspot/share/oops/objArrayKlass.hpp
Print this page
*** 48,57 ****
--- 48,61 ----
static ObjArrayKlass* allocate(ClassLoaderData* loader_data, int n, Klass* k, Symbol* name, TRAPS);
public:
// For dummy objects
ObjArrayKlass() {}
+ // if ObjArrayKlass is used to represent an LWorld "Q-type" value type array, the only thing we can give null-free (i.e. not flattened)
+ // ArrayStorageProperties::empty meaning nothing special, array of references (possibly even to value types)
+ ArrayStorageProperties storage_properties();
+
Klass* bottom_klass() const { return _bottom_klass; }
void set_bottom_klass(Klass* k) { _bottom_klass = k; }
Klass** bottom_klass_addr() { return &_bottom_klass; }
ModuleEntry* module() const;
*** 63,73 ****
Array<InstanceKlass*>* transitive_interfaces);
DEBUG_ONLY(bool is_objArray_klass_slow() const { return true; })
int oop_size(oop obj) const;
// Allocation
! static Klass* allocate_objArray_klass(ClassLoaderData* loader_data,
int n, Klass* element_klass, TRAPS);
objArrayOop allocate(int length, TRAPS);
oop multi_allocate(int rank, jint* sizes, TRAPS);
--- 67,77 ----
Array<InstanceKlass*>* transitive_interfaces);
DEBUG_ONLY(bool is_objArray_klass_slow() const { return true; })
int oop_size(oop obj) const;
// Allocation
! static Klass* allocate_objArray_klass(ArrayStorageProperties storage_props,
int n, Klass* element_klass, TRAPS);
objArrayOop allocate(int length, TRAPS);
oop multi_allocate(int rank, jint* sizes, TRAPS);
*** 85,98 ****
void do_copy(arrayOop s, size_t src_offset,
arrayOop d, size_t dst_offset,
int length, TRAPS);
protected:
// Returns the ObjArrayKlass for n'th dimension.
! virtual Klass* array_klass_impl(bool or_null, int n, TRAPS);
// Returns the array class with this class as element type.
! virtual Klass* array_klass_impl(bool or_null, TRAPS);
public:
static ObjArrayKlass* cast(Klass* k) {
return const_cast<ObjArrayKlass*>(cast(const_cast<const Klass*>(k)));
--- 89,102 ----
void do_copy(arrayOop s, size_t src_offset,
arrayOop d, size_t dst_offset,
int length, TRAPS);
protected:
// Returns the ObjArrayKlass for n'th dimension.
! virtual Klass* array_klass_impl(ArrayStorageProperties storage_props, bool or_null, int n, TRAPS);
// Returns the array class with this class as element type.
! virtual Klass* array_klass_impl(ArrayStorageProperties storage_props, bool or_null, TRAPS);
public:
static ObjArrayKlass* cast(Klass* k) {
return const_cast<ObjArrayKlass*>(cast(const_cast<const Klass*>(k)));
< prev index next >