< prev index next >

src/share/vm/oops/method.cpp

Print this page

        

*** 275,285 **** assert(bci == -1 || bci == bci_from(bcp_from(bci)), "sane bci if >=0"); return bci; } address Method::bcp_from(int bci) const { ! assert((is_native() && bci == 0) || (!is_native() && 0 <= bci && bci < code_size()), "illegal bci: %d", bci); address bcp = code_base() + bci; assert(is_native() && bcp == code_base() || contains(bcp), "bcp doesn't belong to this method"); return bcp; } --- 275,286 ---- assert(bci == -1 || bci == bci_from(bcp_from(bci)), "sane bci if >=0"); return bci; } address Method::bcp_from(int bci) const { ! assert((is_native() && bci == 0) || (!is_native() && 0 <= bci && bci < code_size()), ! "illegal bci: %d for %s method", bci, is_native() ? "native" : "non-native"); address bcp = code_base() + bci; assert(is_native() && bcp == code_base() || contains(bcp), "bcp doesn't belong to this method"); return bcp; }
*** 556,566 **** } bool Method::is_final_method(AccessFlags class_access_flags) const { // or "does_not_require_vtable_entry" // default method or overpass can occur, is not final (reuses vtable entry) ! // private methods get vtable entries for backward class compatibility. if (is_overpass() || is_default_method()) return false; return is_final() || class_access_flags.is_final(); } bool Method::is_final_method() const { --- 557,567 ---- } bool Method::is_final_method(AccessFlags class_access_flags) const { // or "does_not_require_vtable_entry" // default method or overpass can occur, is not final (reuses vtable entry) ! // private methods in classes get vtable entries for backward class compatibility. if (is_overpass() || is_default_method()) return false; return is_final() || class_access_flags.is_final(); } bool Method::is_final_method() const {
*** 568,578 **** } bool Method::is_default_method() const { if (method_holder() != NULL && method_holder()->is_interface() && ! !is_abstract()) { return true; } else { return false; } } --- 569,579 ---- } bool Method::is_default_method() const { if (method_holder() != NULL && method_holder()->is_interface() && ! !is_abstract() && !is_private()) { return true; } else { return false; } }
*** 581,591 **** if (is_final_method(class_access_flags)) return true; #ifdef ASSERT ResourceMark rm; bool is_nonv = (vtable_index() == nonvirtual_vtable_index); if (class_access_flags.is_interface()) { ! assert(is_nonv == is_static(), "is_nonv=%s", name_and_sig_as_C_string()); } #endif assert(valid_vtable_index() || valid_itable_index(), "method must be linked before we ask this question"); return vtable_index() == nonvirtual_vtable_index; } --- 582,594 ---- if (is_final_method(class_access_flags)) return true; #ifdef ASSERT ResourceMark rm; bool is_nonv = (vtable_index() == nonvirtual_vtable_index); if (class_access_flags.is_interface()) { ! assert(is_nonv == is_static() || is_nonv == is_private(), ! "nonvirtual unexpected for non-static, non-private: %s", ! name_and_sig_as_C_string()); } #endif assert(valid_vtable_index() || valid_itable_index(), "method must be linked before we ask this question"); return vtable_index() == nonvirtual_vtable_index; }
< prev index next >