< prev index next >

src/hotspot/share/oops/arrayOop.hpp

Print this page
@@ -24,10 +24,11 @@
  
  #ifndef SHARE_OOPS_ARRAYOOP_HPP
  #define SHARE_OOPS_ARRAYOOP_HPP
  
  #include "oops/oop.hpp"
+ #include "runtime/globals.hpp"
  #include "utilities/align.hpp"
  #include "utilities/globalDefinitions.hpp"
  
  // arrayOopDesc is the abstract baseclass for all arrays.  It doesn't
  // declare pure virtual to enforce this because that would allocate a vtbl

@@ -53,10 +54,13 @@
      return reinterpret_cast<int*>(ptr + length_offset_in_bytes());
    }
  
    // Given a type, return true if elements of that type must be aligned to 64-bit.
    static bool element_type_should_be_aligned(BasicType type) {
+     if (EnableValhalla && type == T_PRIMITIVE_OBJECT) {
+       return true; //CMH: tighten the alignment when removing T_PRIMITIVE_OBJECT
+     }
  #ifdef _LP64
      if (type == T_OBJECT || type == T_ARRAY) {
        return !UseCompressedOops;
      }
  #endif
< prev index next >