< prev index next >
src/hotspot/share/ci/ciMethod.cpp
Print this page
*** 87,96 ****
--- 87,97 ----
_balanced_monitors = !_uses_monitors || h_m()->access_flags().is_monitor_matching();
_is_c1_compilable = !h_m()->is_not_c1_compilable();
_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;
_liveness = NULL;
_method_blocks = NULL;
*** 716,726 ****
if (!UseCHA) return NULL;
VM_ENTRY_MARK;
// Disable CHA for default methods for now
! if (root_m->get_Method()->is_default_method()) {
return NULL;
}
methodHandle target;
{
--- 717,727 ----
if (!UseCHA) return NULL;
VM_ENTRY_MARK;
// Disable CHA for default methods for now
! if (root_m->is_default_method()) {
return NULL;
}
methodHandle target;
{
*** 756,765 ****
--- 757,767 ----
// methods in other packages.
// %%% TO DO: Work out logic for package-private methods
// with the same name but different vtable indexes.
return NULL;
}
+ assert(!target()->is_abstract(), "not allowed");
return CURRENT_THREAD_ENV->get_method(target());
}
// ------------------------------------------------------------------
// ciMethod::resolve_invoke
*** 872,881 ****
--- 874,891 ----
iter.next();
return iter.get_method(will_link, declared_signature);
}
// ------------------------------------------------------------------
+ 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
// counts in the MDO should be scaled by 4X, so that
// they can be usefully and stably compared against the
< prev index next >