8158397: Crash: assert(save_resolved_method == resolved_method()) failed: does this change?
Remove assert. it does change. Reviewed-by: sspitsyn, jiangli, mgronlun
This commit is contained in:
parent
562cf441d4
commit
7419c9549b
@ -966,20 +966,18 @@ void LinkResolver::resolve_static_call(CallInfo& result,
|
|||||||
methodHandle resolved_method = linktime_resolve_static_method(link_info, CHECK);
|
methodHandle resolved_method = linktime_resolve_static_method(link_info, CHECK);
|
||||||
|
|
||||||
// The resolved class can change as a result of this resolution.
|
// The resolved class can change as a result of this resolution.
|
||||||
KlassHandle resolved_klass = KlassHandle(THREAD, resolved_method->method_holder());
|
KlassHandle resolved_klass(THREAD, resolved_method->method_holder());
|
||||||
|
|
||||||
Method* save_resolved_method = resolved_method();
|
|
||||||
// Initialize klass (this should only happen if everything is ok)
|
// Initialize klass (this should only happen if everything is ok)
|
||||||
if (initialize_class && resolved_klass->should_be_initialized()) {
|
if (initialize_class && resolved_klass->should_be_initialized()) {
|
||||||
resolved_klass->initialize(CHECK);
|
resolved_klass->initialize(CHECK);
|
||||||
// Use updated LinkInfo (to reresolve with resolved_klass as method_holder?)
|
// Use updated LinkInfo to reresolve with resolved method holder
|
||||||
LinkInfo new_info(resolved_klass, link_info.name(), link_info.signature(),
|
LinkInfo new_info(resolved_klass, link_info.name(), link_info.signature(),
|
||||||
link_info.current_klass(),
|
link_info.current_klass(),
|
||||||
link_info.check_access() ? LinkInfo::needs_access_check : LinkInfo::skip_access_check);
|
link_info.check_access() ? LinkInfo::needs_access_check : LinkInfo::skip_access_check);
|
||||||
resolved_method = linktime_resolve_static_method(new_info, CHECK);
|
resolved_method = linktime_resolve_static_method(new_info, CHECK);
|
||||||
}
|
}
|
||||||
|
|
||||||
assert(save_resolved_method == resolved_method(), "does this change?");
|
|
||||||
// setup result
|
// setup result
|
||||||
result.set_static(resolved_klass, resolved_method, CHECK);
|
result.set_static(resolved_klass, resolved_method, CHECK);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user