--- old/src/share/vm/oops/instanceKlass.hpp 2017-08-04 21:17:57.368483684 +0200 +++ new/src/share/vm/oops/instanceKlass.hpp 2017-08-04 21:17:49.949496981 +0200 @@ -69,6 +69,7 @@ class JvmtiCachedClassFieldMap; class MemberNameTable; class SuperTypeClosure; +class BufferedValueTypeBlob; // This is used in iterators below. class FieldClosure: public StackObj { @@ -1091,6 +1092,8 @@ bool is_interface, bool is_anonymous, bool has_stored_fingerprint, int java_fields, bool is_value_type) { return align_metadata_size(header_size() + + (is_value_type ? (int)sizeof(address) : 0) + + (is_value_type ? (int)sizeof(address) : 0) + vtable_length + itable_length + nonstatic_oop_map_size + @@ -1114,7 +1117,7 @@ virtual void collect_statistics(KlassSizeStats *sz) const; #endif - intptr_t* start_of_itable() const { return (intptr_t*)start_of_vtable() + vtable_length(); } + intptr_t* start_of_itable() const { return (intptr_t*)start_of_vtable() + (is_value() ? 2 : 0 ) + vtable_length(); } intptr_t* end_of_itable() const { return start_of_itable() + itable_length(); } int itable_offset_in_words() const { return start_of_itable() - (intptr_t*)this; }