< prev index next >
src/share/vm/interpreter/linkResolver.cpp
Print this page
*** 177,200 ****
#ifdef ASSERT
// Ensure that this is really the case.
KlassHandle object_klass = SystemDictionary::Object_klass();
Method * object_resolved_method = object_klass()->vtable()->method_at(index);
assert(object_resolved_method->name() == resolved_method->name(),
! err_msg("Object and interface method names should match at vtable index %d, %s != %s",
! index, object_resolved_method->name()->as_C_string(), resolved_method->name()->as_C_string()));
assert(object_resolved_method->signature() == resolved_method->signature(),
! err_msg("Object and interface method signatures should match at vtable index %d, %s != %s",
! index, object_resolved_method->signature()->as_C_string(), resolved_method->signature()->as_C_string()));
#endif // ASSERT
kind = CallInfo::vtable_call;
} else {
// A regular interface call.
kind = CallInfo::itable_call;
index = resolved_method->itable_index();
}
! assert(index == Method::nonvirtual_vtable_index || index >= 0, err_msg("bad index %d", index));
_call_kind = kind;
_call_index = index;
_resolved_appendix = Handle();
DEBUG_ONLY(verify());
}
--- 177,200 ----
#ifdef ASSERT
// Ensure that this is really the case.
KlassHandle object_klass = SystemDictionary::Object_klass();
Method * object_resolved_method = object_klass()->vtable()->method_at(index);
assert(object_resolved_method->name() == resolved_method->name(),
! "Object and interface method names should match at vtable index %d, %s != %s",
! index, object_resolved_method->name()->as_C_string(), resolved_method->name()->as_C_string());
assert(object_resolved_method->signature() == resolved_method->signature(),
! "Object and interface method signatures should match at vtable index %d, %s != %s",
! index, object_resolved_method->signature()->as_C_string(), resolved_method->signature()->as_C_string());
#endif // ASSERT
kind = CallInfo::vtable_call;
} else {
// A regular interface call.
kind = CallInfo::itable_call;
index = resolved_method->itable_index();
}
! assert(index == Method::nonvirtual_vtable_index || index >= 0, "bad index %d", index);
_call_kind = kind;
_call_index = index;
_resolved_appendix = Handle();
DEBUG_ONLY(verify());
}
*** 213,223 ****
break;
case CallInfo::unknown_kind:
assert(call_kind() != CallInfo::unknown_kind, "CallInfo must be set");
break;
default:
! fatal(err_msg_res("Unexpected call kind %d", call_kind()));
}
}
#endif //ASSERT
#ifndef PRODUCT
--- 213,223 ----
break;
case CallInfo::unknown_kind:
assert(call_kind() != CallInfo::unknown_kind, "CallInfo must be set");
break;
default:
! fatal("Unexpected call kind %d", call_kind());
}
}
#endif //ASSERT
#ifndef PRODUCT
*** 497,507 ****
tty->print_cr("*** basic_signature=%s", basic_signature->as_C_string());
tty->print_cr("*** result for %s: ", vmIntrinsics::name_at(iid));
result->print();
}
assert(actual_size_of_params == expected_size_of_params,
! err_msg("%d != %d", actual_size_of_params, expected_size_of_params));
#endif //ASSERT
assert(appendix_result_or_null != NULL, "");
(*appendix_result_or_null) = appendix;
(*method_type_result) = method_type;
--- 497,507 ----
tty->print_cr("*** basic_signature=%s", basic_signature->as_C_string());
tty->print_cr("*** result for %s: ", vmIntrinsics::name_at(iid));
result->print();
}
assert(actual_size_of_params == expected_size_of_params,
! "%d != %d", actual_size_of_params, expected_size_of_params);
#endif //ASSERT
assert(appendix_result_or_null != NULL, "");
(*appendix_result_or_null) = appendix;
(*method_type_result) = method_type;
< prev index next >