--- old/src/hotspot/share/oops/valueKlass.hpp 2018-12-18 11:42:46.833781701 +0100 +++ new/src/hotspot/share/oops/valueKlass.hpp 2018-12-18 11:42:46.525935705 +0100 @@ -111,9 +111,7 @@ return ((address)_adr_valueklass_fixed_block) + in_bytes(default_value_offset_offset()); } - // static Klass* array_klass_impl(InstanceKlass* this_k, bool or_null, int n, TRAPS); - - GrowableArray collect_fields(int base_off = 0) const; + int collect_fields(GrowableArray* sig, int base_off = 0) const; void cleanup_blobs(); @@ -195,7 +193,7 @@ inline void oop_iterate_specialized_bounded(const address oop_addr, OopClosureType* closure, void* lo, void* hi); // calling convention support - void initialize_calling_convention(); + void initialize_calling_convention(TRAPS); Array* extended_sig() const { return *((Array**)adr_extended_sig()); } @@ -211,13 +209,11 @@ // pack and unpack handlers. Need to be loadable from generated code // so at a fixed offset from the base of the klass pointer. static ByteSize pack_handler_offset() { - fatal("Should be re-implemented using the ValueKlassStaticBlock indirection"); - return in_ByteSize(InstanceKlass::header_size() * wordSize); + return byte_offset_of(ValueKlassFixedBlock, _pack_handler); } static ByteSize unpack_handler_offset() { - fatal("Should be re-implemented using the ValueKlassStaticBlock indirection"); - return in_ByteSize((InstanceKlass::header_size()+1) * wordSize); + return byte_offset_of(ValueKlassFixedBlock, _unpack_handler); } static ByteSize default_value_offset_offset() {