The logic for smearing the type checking slice into a single slice has incorrect bounds because of partial removal of sizeof(klassOopDesc) uint off2 = offset - Klass::primary_supers_offset_in_bytes(); if( offset == Type::OffsetBot || off2 < Klass::primary_super_limit()*wordSize ) { offset = sizeof(oopDesc) +Klass::secondary_super_cache_offset_in_bytes(); tj = tk = TypeKlassPtr::make( TypePtr::NotNull, tk->klass(), offset ); } } off2 should also be subtracting sizeof(klassOopDesc)
|