changeset 59980:a922dc19a7a5

8248410: Correct Fix for 8236647: java/lang/invoke/CallSiteTest.java failed with InvocationTargetException in Graal mode Reviewed-by: kvn, never
author bobv
date Mon, 29 Jun 2020 17:25:44 +0000
parents a8a1b64a0556
children d88dd9bd2971
files src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotObjectConstantImpl.java
diffstat 1 files changed, 4 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotObjectConstantImpl.java	Mon Jun 29 18:39:40 2020 +0200
+++ b/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotObjectConstantImpl.java	Mon Jun 29 17:25:44 2020 +0000
@@ -65,25 +65,21 @@
     @Override
     public abstract int getIdentityHashCode();
 
-    static class Fields {
-        // Initializing these too early causes a hang, so do it here in a subclass
-        static final HotSpotResolvedJavaField callSiteTargetField         = HotSpotMethodHandleAccessProvider.Internals.instance().callSiteTargetField;
-        static final HotSpotResolvedJavaField constantCallSiteFrozenField = HotSpotMethodHandleAccessProvider.Internals.instance().constantCallSiteFrozenField;
-    }
-
     private boolean isFullyInitializedConstantCallSite() {
         if (!runtime().getConstantCallSite().isInstance(this)) {
             return false;
         }
         // read ConstantCallSite.isFrozen as a volatile field
-        boolean isFrozen = readFieldValue(Fields.constantCallSiteFrozenField, true /* volatile */).asBoolean();
+        HotSpotResolvedJavaField field = HotSpotMethodHandleAccessProvider.Internals.instance().constantCallSiteFrozenField;
+        boolean isFrozen = readFieldValue(field, true /* volatile */).asBoolean();
         // isFrozen true implies fully-initialized
         return isFrozen;
     }
 
     private HotSpotObjectConstantImpl readTarget() {
         // read CallSite.target as a volatile field
-        return (HotSpotObjectConstantImpl) readFieldValue(Fields.callSiteTargetField, true /* volatile */);
+        HotSpotResolvedJavaField field = HotSpotMethodHandleAccessProvider.Internals.instance().callSiteTargetField;
+        return (HotSpotObjectConstantImpl) readFieldValue(field, true /* volatile */);
     }
 
     @Override