diff -r 47a8fdf84424 -r 8462b295c08b src/hotspot/share/ci/ciMethod.cpp --- a/src/hotspot/share/ci/ciMethod.cpp Thu Jan 31 17:48:25 2019 -0800 +++ b/src/hotspot/share/ci/ciMethod.cpp Thu Jan 31 17:48:29 2019 -0800 @@ -90,6 +90,7 @@ _is_c2_compilable = !h_m()->is_not_c2_compilable(); _can_be_parsed = true; _has_reserved_stack_access = h_m()->has_reserved_stack_access(); + _is_overpass = h_m()->is_overpass(); // Lazy fields, filled in on demand. Require allocation. _code = NULL; _exception_handlers = NULL; @@ -719,7 +720,7 @@ VM_ENTRY_MARK; // Disable CHA for default methods for now - if (root_m->get_Method()->is_default_method()) { + if (root_m->is_default_method()) { return NULL; } @@ -759,6 +760,7 @@ // with the same name but different vtable indexes. return NULL; } + assert(!target()->is_abstract(), "not allowed"); return CURRENT_THREAD_ENV->get_method(target()); } @@ -875,6 +877,14 @@ } // ------------------------------------------------------------------ +ciKlass* ciMethod::get_declared_method_holder_at_bci(int bci) { + ciBytecodeStream iter(this); + iter.reset_to_bci(bci); + iter.next(); + return iter.get_declared_method_holder(); +} + +// ------------------------------------------------------------------ // Adjust a CounterData count to be commensurate with // interpreter_invocation_count. If the MDO exists for // only 25% of the time the method exists, then the