189 private static LambdaForm makePreparedLambdaForm(MethodType mtype, int which) { |
189 private static LambdaForm makePreparedLambdaForm(MethodType mtype, int which) { |
190 boolean needsInit = (which == LF_INVSTATIC_INIT); |
190 boolean needsInit = (which == LF_INVSTATIC_INIT); |
191 boolean doesAlloc = (which == LF_NEWINVSPECIAL); |
191 boolean doesAlloc = (which == LF_NEWINVSPECIAL); |
192 String linkerName, lambdaName; |
192 String linkerName, lambdaName; |
193 switch (which) { |
193 switch (which) { |
194 case LF_INVVIRTUAL: linkerName = "linkToVirtual"; lambdaName = "invokeVirtual"; break; |
194 case LF_INVVIRTUAL: linkerName = "linkToVirtual"; lambdaName = "DMH.invokeVirtual"; break; |
195 case LF_INVSTATIC: linkerName = "linkToStatic"; lambdaName = "invokeStatic"; break; |
195 case LF_INVSTATIC: linkerName = "linkToStatic"; lambdaName = "DMH.invokeStatic"; break; |
196 case LF_INVSTATIC_INIT:linkerName = "linkToStatic"; lambdaName = "invokeStaticInit"; break; |
196 case LF_INVSTATIC_INIT:linkerName = "linkToStatic"; lambdaName = "DMH.invokeStaticInit"; break; |
197 case LF_INVSPECIAL: linkerName = "linkToSpecial"; lambdaName = "invokeSpecial"; break; |
197 case LF_INVSPECIAL: linkerName = "linkToSpecial"; lambdaName = "DMH.invokeSpecial"; break; |
198 case LF_INVINTERFACE: linkerName = "linkToInterface"; lambdaName = "invokeInterface"; break; |
198 case LF_INVINTERFACE: linkerName = "linkToInterface"; lambdaName = "DMH.invokeInterface"; break; |
199 case LF_NEWINVSPECIAL: linkerName = "linkToSpecial"; lambdaName = "newInvokeSpecial"; break; |
199 case LF_NEWINVSPECIAL: linkerName = "linkToSpecial"; lambdaName = "DMH.newInvokeSpecial"; break; |
200 default: throw new InternalError("which="+which); |
200 default: throw new InternalError("which="+which); |
201 } |
201 } |
202 |
202 |
203 MethodType mtypeWithArg = mtype.appendParameterTypes(MemberName.class); |
203 MethodType mtypeWithArg = mtype.appendParameterTypes(MemberName.class); |
204 if (doesAlloc) |
204 if (doesAlloc) |