< 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 >