--- old/src/hotspot/share/oops/valueArrayKlass.hpp 2019-03-27 16:10:47.455319890 +0100 +++ new/src/hotspot/share/oops/valueArrayKlass.hpp 2019-03-27 16:10:47.111314198 +0100 @@ -46,15 +46,18 @@ static ValueArrayKlass* allocate_klass(Klass* element_klass, Symbol* name, TRAPS); protected: // Returns the ArrayKlass for n'th dimension. - Klass* array_klass_impl(bool or_null, int n, TRAPS); + Klass* array_klass_impl(ArrayStorageProperties storage_props, bool or_null, int n, TRAPS); // Returns the array class with this class as element type. - Klass* array_klass_impl(bool or_null, TRAPS); + Klass* array_klass_impl(ArrayStorageProperties storage_props, bool or_null, TRAPS); public: ValueArrayKlass() {} + // Properties of an LWorld (LW2) flattened array + ArrayStorageProperties storage_properties() { return ArrayStorageProperties::flattened_and_null_free; } + virtual ValueKlass* element_klass() const; virtual void set_element_klass(Klass* k); @@ -65,7 +68,7 @@ } // klass allocation - static ValueArrayKlass* allocate_klass(Klass* element_klass, TRAPS); + static ValueArrayKlass* allocate_klass(ArrayStorageProperties storage_props, Klass* element_klass, TRAPS); void initialize(TRAPS);