jdk/src/java.base/share/classes/java/lang/invoke/VarHandle.java
changeset 38328 40435a469d25
parent 37792 dd626e6f5967
child 38368 c8eb5d6812c5
equal deleted inserted replaced
38327:77143af4d719 38328:40435a469d25
  1473     @ForceInline
  1473     @ForceInline
  1474     final MethodHandle getMethodHandle(int mode) {
  1474     final MethodHandle getMethodHandle(int mode) {
  1475         TypesAndInvokers tis = getTypesAndInvokers();
  1475         TypesAndInvokers tis = getTypesAndInvokers();
  1476         MethodHandle mh = tis.methodHandle_table[mode];
  1476         MethodHandle mh = tis.methodHandle_table[mode];
  1477         if (mh == null) {
  1477         if (mh == null) {
  1478             mh = tis.methodHandle_table[mode] = getMethodHandleUncached(tis, mode);
  1478             mh = tis.methodHandle_table[mode] = getMethodHandleUncached(mode);
  1479         }
  1479         }
  1480         return mh;
  1480         return mh;
  1481     }
  1481     }
  1482     private final MethodHandle getMethodHandleUncached(TypesAndInvokers tis, int mode) {
  1482     private final MethodHandle getMethodHandleUncached(int mode) {
  1483         MethodType mt = accessModeType(AccessMode.values()[mode]).
  1483         MethodType mt = accessModeType(AccessMode.values()[mode]).
  1484                 insertParameterTypes(0, VarHandle.class);
  1484                 insertParameterTypes(0, VarHandle.class);
  1485         MemberName mn = vform.getMemberName(mode);
  1485         MemberName mn = vform.getMemberName(mode);
  1486         DirectMethodHandle dmh = DirectMethodHandle.make(mn);
  1486         DirectMethodHandle dmh = DirectMethodHandle.make(mn);
  1487         // Such a method handle must not be publically exposed directly
  1487         // Such a method handle must not be publically exposed directly