jdk/src/share/classes/java/lang/invoke/LambdaForm.java
changeset 20494 cf77ae5ff678
parent 14852 d513c47448f4
child 20527 d241258cfbcb
equal deleted inserted replaced
20493:6dff5c0efc2f 20494:cf77ae5ff678
   118  * @author John Rose, JSR 292 EG
   118  * @author John Rose, JSR 292 EG
   119  */
   119  */
   120 class LambdaForm {
   120 class LambdaForm {
   121     final int arity;
   121     final int arity;
   122     final int result;
   122     final int result;
   123     final Name[] names;
   123     @Stable final Name[] names;
   124     final String debugName;
   124     final String debugName;
   125     MemberName vmentry;   // low-level behavior, or null if not yet prepared
   125     MemberName vmentry;   // low-level behavior, or null if not yet prepared
   126     private boolean isCompiled;
   126     private boolean isCompiled;
   127 
   127 
   128     // Caches for common structural transforms:
   128     // Caches for common structural transforms:
   969         return true;
   969         return true;
   970     }
   970     }
   971 
   971 
   972     static class NamedFunction {
   972     static class NamedFunction {
   973         final MemberName member;
   973         final MemberName member;
   974         MethodHandle resolvedHandle;
   974         @Stable MethodHandle resolvedHandle;
   975         MethodHandle invoker;
   975         @Stable MethodHandle invoker;
   976 
   976 
   977         NamedFunction(MethodHandle resolvedHandle) {
   977         NamedFunction(MethodHandle resolvedHandle) {
   978             this(resolvedHandle.internalMemberName(), resolvedHandle);
   978             this(resolvedHandle.internalMemberName(), resolvedHandle);
   979         }
   979         }
   980         NamedFunction(MemberName member, MethodHandle resolvedHandle) {
   980         NamedFunction(MemberName member, MethodHandle resolvedHandle) {
  1265 
  1265 
  1266     static final class Name {
  1266     static final class Name {
  1267         final char type;
  1267         final char type;
  1268         private short index;
  1268         private short index;
  1269         final NamedFunction function;
  1269         final NamedFunction function;
  1270         final Object[] arguments;
  1270         @Stable final Object[] arguments;
  1271 
  1271 
  1272         private Name(int index, char type, NamedFunction function, Object[] arguments) {
  1272         private Name(int index, char type, NamedFunction function, Object[] arguments) {
  1273             this.index = (short)index;
  1273             this.index = (short)index;
  1274             this.type = type;
  1274             this.type = type;
  1275             this.function = function;
  1275             this.function = function;