< prev index next >
src/java.base/share/classes/java/lang/invoke/LambdaForm.java
Print this page
*** 629,639 ****
* before invocation.
* (In principle, the JVM could do this very lazily,
* as a sort of pre-invocation linkage step.)
*/
public void prepare() {
! if (COMPILE_THRESHOLD == 0) {
compileToBytecode();
}
if (this.vmentry != null) {
// already prepared (e.g., a primitive DMH invoker form)
return;
--- 629,639 ----
* before invocation.
* (In principle, the JVM could do this very lazily,
* as a sort of pre-invocation linkage step.)
*/
public void prepare() {
! if (COMPILE_THRESHOLD == 0 && !isCompiled) {
compileToBytecode();
}
if (this.vmentry != null) {
// already prepared (e.g., a primitive DMH invoker form)
return;
*** 643,657 ****
// TO DO: Maybe add invokeGeneric, invokeWithArguments
}
/** Generate optimizable bytecode for this form. */
MemberName compileToBytecode() {
- MethodType invokerType = methodType();
- assert(vmentry == null || vmentry.getMethodType().basicType().equals(invokerType));
if (vmentry != null && isCompiled) {
return vmentry; // already compiled somehow
}
try {
vmentry = InvokerBytecodeGenerator.generateCustomizedCode(this, invokerType);
if (TRACE_INTERPRETER)
traceInterpreter("compileToBytecode", this);
isCompiled = true;
--- 643,657 ----
// TO DO: Maybe add invokeGeneric, invokeWithArguments
}
/** Generate optimizable bytecode for this form. */
MemberName compileToBytecode() {
if (vmentry != null && isCompiled) {
return vmentry; // already compiled somehow
}
+ MethodType invokerType = methodType();
+ assert(vmentry == null || vmentry.getMethodType().basicType().equals(invokerType));
try {
vmentry = InvokerBytecodeGenerator.generateCustomizedCode(this, invokerType);
if (TRACE_INTERPRETER)
traceInterpreter("compileToBytecode", this);
isCompiled = true;
< prev index next >