--- old/src/hotspot/share/ci/ciStreams.cpp 2019-03-11 14:25:29.062355668 +0100 +++ new/src/hotspot/share/ci/ciStreams.cpp 2019-03-11 14:25:28.834355671 +0100 @@ -171,6 +171,7 @@ case Bytecodes::_anewarray: case Bytecodes::_multianewarray: case Bytecodes::_new: + case Bytecodes::_defaultvalue: case Bytecodes::_newarray: return get_index_u2(); default: @@ -191,6 +192,16 @@ } // ------------------------------------------------------------------ +// ciBytecodeStream::is_klass_never_null +// +// Get information about nullability from the constant pool. +bool ciBytecodeStream::is_klass_never_null() const { + VM_ENTRY_MARK; + constantPoolHandle cpool(_method->get_Method()->constants()); + return CURRENT_ENV->is_klass_never_null(cpool, get_klass_index()); +} + +// ------------------------------------------------------------------ // ciBytecodeStream::get_constant_raw_index // // If this bytecode is one of the ldc variants, get the index of the @@ -259,7 +270,8 @@ assert(cur_bc() == Bytecodes::_getfield || cur_bc() == Bytecodes::_putfield || cur_bc() == Bytecodes::_getstatic || - cur_bc() == Bytecodes::_putstatic, "wrong bc"); + cur_bc() == Bytecodes::_putstatic || + cur_bc() == Bytecodes::_withfield, "wrong bc"); return get_index_u2_cpcache(); }