test/compiler/jsr292/CallSiteDepContextTest.java
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File bug_8058575.hs Cdiff test/compiler/jsr292/CallSiteDepContextTest.java

test/compiler/jsr292/CallSiteDepContextTest.java

Print this page

        

*** 60,70 **** import static jdk.internal.org.objectweb.asm.Opcodes.IRETURN; public class CallSiteDepContextTest { static final Unsafe UNSAFE = Unsafe.getUnsafe(); static final MethodHandles.Lookup LOOKUP = MethodHandleHelper.IMPL_LOOKUP; ! static final String CLASS_NAME = "java/lang/invoke/Test"; static final String METHOD_NAME = "m"; static final MethodType TYPE = MethodType.methodType(int.class); static MutableCallSite mcs; static MethodHandle bsmMH; --- 60,70 ---- import static jdk.internal.org.objectweb.asm.Opcodes.IRETURN; public class CallSiteDepContextTest { static final Unsafe UNSAFE = Unsafe.getUnsafe(); static final MethodHandles.Lookup LOOKUP = MethodHandleHelper.IMPL_LOOKUP; ! static final String CLASS_NAME = "compiler/jsr292/Test"; static final String METHOD_NAME = "m"; static final MethodType TYPE = MethodType.methodType(int.class); static MutableCallSite mcs; static MethodHandle bsmMH;
*** 127,138 **** throw new AssertionError("Context.dependencies field should be hidden"); } catch(NoSuchFieldException e) { /* expected */ } } public static void testSharedCallSite() throws Throwable { ! Class<?> cls1 = UNSAFE.defineAnonymousClass(Object.class, getClassFile("CS_1"), null); ! Class<?> cls2 = UNSAFE.defineAnonymousClass(Object.class, getClassFile("CS_2"), null); MethodHandle[] mhs = new MethodHandle[] { LOOKUP.findStatic(cls1, METHOD_NAME, TYPE), LOOKUP.findStatic(cls2, METHOD_NAME, TYPE) }; --- 127,138 ---- throw new AssertionError("Context.dependencies field should be hidden"); } catch(NoSuchFieldException e) { /* expected */ } } public static void testSharedCallSite() throws Throwable { ! Class<?> cls1 = UNSAFE.defineAnonymousClass(CallSiteDepContextTest.class, getClassFile("CS_1"), null); ! Class<?> cls2 = UNSAFE.defineAnonymousClass(CallSiteDepContextTest.class, getClassFile("CS_2"), null); MethodHandle[] mhs = new MethodHandle[] { LOOKUP.findStatic(cls1, METHOD_NAME, TYPE), LOOKUP.findStatic(cls2, METHOD_NAME, TYPE) };
*** 149,159 **** // mcs.context == null MethodHandle mh = mcs.dynamicInvoker(); execute(1, mh); // mcs.context == cls1 ! Class<?> cls1 = UNSAFE.defineAnonymousClass(Object.class, getClassFile("NonBound_1"), null); MethodHandle mh1 = LOOKUP.findStatic(cls1, METHOD_NAME, TYPE); execute(1, mh1); mcs.setTarget(LOOKUP.findStatic(T.class, "f2", TYPE)); --- 149,159 ---- // mcs.context == null MethodHandle mh = mcs.dynamicInvoker(); execute(1, mh); // mcs.context == cls1 ! Class<?> cls1 = UNSAFE.defineAnonymousClass(CallSiteDepContextTest.class, getClassFile("NonBound_1"), null); MethodHandle mh1 = LOOKUP.findStatic(cls1, METHOD_NAME, TYPE); execute(1, mh1); mcs.setTarget(LOOKUP.findStatic(T.class, "f2", TYPE));
*** 168,179 **** String id = "_" + clear + "_" + precompile; mcs = new MutableCallSite(LOOKUP.findStatic(T.class, "f1", TYPE)); Class<?>[] cls = new Class[] { ! UNSAFE.defineAnonymousClass(Object.class, getClassFile("GC_1" + id), null), ! UNSAFE.defineAnonymousClass(Object.class, getClassFile("GC_2" + id), null), }; MethodHandle[] mhs = new MethodHandle[] { LOOKUP.findStatic(cls[0], METHOD_NAME, TYPE), LOOKUP.findStatic(cls[1], METHOD_NAME, TYPE), --- 168,179 ---- String id = "_" + clear + "_" + precompile; mcs = new MutableCallSite(LOOKUP.findStatic(T.class, "f1", TYPE)); Class<?>[] cls = new Class[] { ! UNSAFE.defineAnonymousClass(CallSiteDepContextTest.class, getClassFile("GC_1" + id), null), ! UNSAFE.defineAnonymousClass(CallSiteDepContextTest.class, getClassFile("GC_2" + id), null), }; MethodHandle[] mhs = new MethodHandle[] { LOOKUP.findStatic(cls[0], METHOD_NAME, TYPE), LOOKUP.findStatic(cls[1], METHOD_NAME, TYPE),
*** 183,193 **** int r = (int) mhs[0].invokeExact(); execute(1, mhs); ref = new PhantomReference<>(cls[0], rq); ! cls[0] = UNSAFE.defineAnonymousClass(Object.class, getClassFile("GC_3" + id), null); mhs[0] = LOOKUP.findStatic(cls[0], METHOD_NAME, TYPE); do { System.gc(); try { --- 183,193 ---- int r = (int) mhs[0].invokeExact(); execute(1, mhs); ref = new PhantomReference<>(cls[0], rq); ! cls[0] = UNSAFE.defineAnonymousClass(CallSiteDepContextTest.class, getClassFile("GC_3" + id), null); mhs[0] = LOOKUP.findStatic(cls[0], METHOD_NAME, TYPE); do { System.gc(); try {
test/compiler/jsr292/CallSiteDepContextTest.java
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File