equal
deleted
inserted
replaced
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 |