jdk/test/java/lang/invoke/JavaDocExamplesTest.java
changeset 9782 973c21557e1a
parent 9752 88ab34b6da6d
child 10081 0f7b9636aa64
equal deleted inserted replaced
9781:ce852878da20 9782:973c21557e1a
   475         {{
   475         {{
   476 {} /// JAVADOC
   476 {} /// JAVADOC
   477 MethodHandle MH_strcat = MethodHandles.lookup()
   477 MethodHandle MH_strcat = MethodHandles.lookup()
   478     .findVirtual(String.class, "concat", MethodType.methodType(String.class, String.class));
   478     .findVirtual(String.class, "concat", MethodType.methodType(String.class, String.class));
   479 SwitchPoint spt = new SwitchPoint();
   479 SwitchPoint spt = new SwitchPoint();
   480 assert(spt.isValid());
   480 assert(!spt.hasBeenInvalidated());
   481 // the following steps may be repeated to re-use the same switch point:
   481 // the following steps may be repeated to re-use the same switch point:
   482 MethodHandle worker1 = MH_strcat;
   482 MethodHandle worker1 = MH_strcat;
   483 MethodHandle worker2 = MethodHandles.permuteArguments(MH_strcat, MH_strcat.type(), 1, 0);
   483 MethodHandle worker2 = MethodHandles.permuteArguments(MH_strcat, MH_strcat.type(), 1, 0);
   484 MethodHandle worker = spt.guardWithTest(worker1, worker2);
   484 MethodHandle worker = spt.guardWithTest(worker1, worker2);
   485 assertEquals("method", (String) worker.invokeExact("met", "hod"));
   485 assertEquals("method", (String) worker.invokeExact("met", "hod"));
   486 SwitchPoint.invalidateAll(new SwitchPoint[]{ spt });
   486 SwitchPoint.invalidateAll(new SwitchPoint[]{ spt });
   487 assert(!spt.isValid());
   487 assert(spt.hasBeenInvalidated());
   488 assertEquals("hodmet", (String) worker.invokeExact("met", "hod"));
   488 assertEquals("hodmet", (String) worker.invokeExact("met", "hod"));
   489 {}
   489 {}
   490             }}
   490             }}
   491     }
   491     }
   492 
   492