8234923: Missed call_site_target nmethod dependency for non-fully initialized ConstantCallSite instance

Reviewed-by: jrose
This commit is contained in:
Vladimir Ivanov 2019-12-03 20:13:21 +03:00
parent c7bc0f7a12
commit a6daef527e
9 changed files with 73 additions and 9 deletions

View file

@ -1707,7 +1707,7 @@ void GraphBuilder::access_field(Bytecodes::Code code) {
// For CallSite objects add a dependency for invalidation of the optimization.
if (field->is_call_site_target()) {
ciCallSite* call_site = const_oop->as_call_site();
if (!call_site->is_constant_call_site()) {
if (!call_site->is_fully_initialized_constant_call_site()) {
ciMethodHandle* target = field_value.as_object()->as_method_handle();
dependency_recorder()->assert_call_site_target_value(call_site, target);
}