< prev index next >

src/hotspot/share/oops/klass.hpp

Print this page

        

@@ -26,10 +26,11 @@
 #define SHARE_OOPS_KLASS_HPP
 
 #include "classfile/classLoaderData.hpp"
 #include "memory/iterator.hpp"
 #include "memory/memRegion.hpp"
+#include "oops/arrayStorageProperties.hpp"
 #include "oops/markOop.hpp"
 #include "oops/metadata.hpp"
 #include "oops/oop.hpp"
 #include "oops/oopHandle.hpp"
 #include "utilities/accessFlags.hpp"

@@ -481,19 +482,26 @@
   Method* lookup_method(const Symbol* name, const Symbol* signature) const {
     return uncached_lookup_method(name, signature, find_overpass);
   }
 
   // array class with specific rank
-  Klass* array_klass(int rank, TRAPS)         {  return array_klass_impl(false, rank, THREAD); }
+  Klass* array_klass(int rank, TRAPS) {
+    return array_klass_impl(ArrayStorageProperties::empty, false, rank, THREAD);
+  }
+  Klass* array_klass(ArrayStorageProperties storage_props, int rank, TRAPS) {
+    return array_klass_impl(storage_props, false, rank, THREAD);
+  }
 
   // array class with this klass as element type
-  Klass* array_klass(TRAPS)                   {  return array_klass_impl(false, THREAD); }
+  Klass* array_klass(TRAPS) {
+    return array_klass_impl(ArrayStorageProperties::empty, false, THREAD);
+  }
 
   // These will return NULL instead of allocating on the heap:
   // NB: these can block for a mutex, like other functions with TRAPS arg.
-  Klass* array_klass_or_null(int rank);
-  Klass* array_klass_or_null();
+  Klass* array_klass_or_null(ArrayStorageProperties storage_props, int rank);
+  Klass* array_klass_or_null(ArrayStorageProperties storage_props);
 
   virtual oop protection_domain() const = 0;
 
   oop class_loader() const;
 

@@ -502,12 +510,12 @@
   // be used safely.  All uses of klass_holder need to apply the appropriate barriers,
   // except during GC.
   oop klass_holder() const { return class_loader_data()->holder_phantom(); }
 
  protected:
-  virtual Klass* array_klass_impl(bool or_null, int rank, TRAPS);
-  virtual Klass* array_klass_impl(bool or_null, TRAPS);
+  virtual Klass* array_klass_impl(ArrayStorageProperties storage_props, bool or_null, int rank, TRAPS);
+  virtual Klass* array_klass_impl(ArrayStorageProperties storage_props, bool or_null, TRAPS);
 
   // Error handling when length > max_length or length < 0
   static void check_array_allocation_length(int length, int max_length, TRAPS);
 
   void set_vtable_length(int len) { _vtable_len= len; }
< prev index next >