8309498: [JVMCI] race in CallSiteTargetValue recording

Reviewed-by: dnsimon, kvn
This commit is contained in:
Tom Rodriguez 2023-06-08 16:11:33 +00:00
parent 5a706fb403
commit bb966827ac

@ -88,13 +88,15 @@ abstract class HotSpotObjectConstantImpl implements HotSpotObjectConstant {
if (runtime().getCallSite().isInstance(this)) {
// For ConstantCallSites, we need to read "isFrozen" before reading "target"
// isFullyInitializedConstantCallSite() reads "isFrozen"
if (!isFullyInitializedConstantCallSite()) {
if (assumptions == null) {
return null;
}
assumptions.record(new Assumptions.CallSiteTargetValue(this, readTarget()));
if (isFullyInitializedConstantCallSite()) {
return readTarget();
}
return readTarget();
if (assumptions == null) {
return null;
}
HotSpotObjectConstantImpl result = readTarget();
assumptions.record(new Assumptions.CallSiteTargetValue(this, result));
return result;
}
return null;
}