< prev index next >

src/hotspot/share/oops/typeArrayKlass.cpp

Print this page
@@ -36,10 +36,11 @@
  #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) {

@@ -73,14 +74,17 @@
  
    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;
+   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) {
+ 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));

@@ -96,11 +100,10 @@
    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 >