< prev index next > src/hotspot/share/oops/typeArrayKlass.cpp
Print this page
#include "oops/klass.inline.hpp"
#include "oops/objArrayKlass.hpp"
#include "oops/oop.inline.hpp"
#include "oops/typeArrayKlass.inline.hpp"
#include "oops/typeArrayOop.inline.hpp"
+ #include "runtime/arguments.hpp"
#include "runtime/handles.inline.hpp"
#include "utilities/macros.hpp"
TypeArrayKlass* TypeArrayKlass::create_klass(BasicType type,
const char* name_str, TRAPS) {
return new (loader_data, size, THREAD) TypeArrayKlass(type, name);
}
u2 TypeArrayKlass::compute_modifier_flags() const {
! return JVM_ACC_ABSTRACT | JVM_ACC_FINAL | JVM_ACC_PUBLIC;
}
! TypeArrayKlass::TypeArrayKlass(BasicType type, Symbol* name) : ArrayKlass(name, Kind) {
set_layout_helper(array_layout_helper(type));
assert(is_array_klass(), "sanity");
assert(is_typeArray_klass(), "sanity");
set_max_length(arrayOopDesc::max_array_length(type));
return new (loader_data, size, THREAD) TypeArrayKlass(type, name);
}
u2 TypeArrayKlass::compute_modifier_flags() const {
! u2 identity_flag = (Arguments::enable_preview()) ? JVM_ACC_IDENTITY : 0;
+
+ return JVM_ACC_ABSTRACT | JVM_ACC_FINAL | JVM_ACC_PUBLIC
+ | identity_flag;
}
! TypeArrayKlass::TypeArrayKlass(BasicType type, Symbol* name) : ArrayKlass(name, Kind, ArrayKlass::ArrayProperties::DEFAULT) {
set_layout_helper(array_layout_helper(type));
assert(is_array_klass(), "sanity");
assert(is_typeArray_klass(), "sanity");
set_max_length(arrayOopDesc::max_array_length(type));
return (typeArrayOop)Universe::heap()->array_allocate(this, size, length,
do_zero, CHECK_NULL);
}
oop TypeArrayKlass::multi_allocate(int rank, jint* last_size, TRAPS) {
- // For typeArrays this is only called for the last dimension
assert(rank == 1, "just checking");
int length = *last_size;
return allocate_instance(length, THREAD);
}
< prev index next >