aboutsummaryrefslogtreecommitdiff
path: root/src/share/classes/java/lang/invoke/InvokerBytecodeGenerator.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/share/classes/java/lang/invoke/InvokerBytecodeGenerator.java')
-rw-r--r--src/share/classes/java/lang/invoke/InvokerBytecodeGenerator.java9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/share/classes/java/lang/invoke/InvokerBytecodeGenerator.java b/src/share/classes/java/lang/invoke/InvokerBytecodeGenerator.java
index cdbbebcbe..6e8d091a6 100644
--- a/src/share/classes/java/lang/invoke/InvokerBytecodeGenerator.java
+++ b/src/share/classes/java/lang/invoke/InvokerBytecodeGenerator.java
@@ -628,8 +628,13 @@ class InvokerBytecodeGenerator {
// Mark this method as a compiled LambdaForm
mv.visitAnnotation("Ljava/lang/invoke/LambdaForm$Compiled;", true);
- // Force inlining of this invoker method.
- mv.visitAnnotation("Ljava/lang/invoke/ForceInline;", true);
+ if (lambdaForm.forceInline) {
+ // Force inlining of this invoker method.
+ mv.visitAnnotation("Ljava/lang/invoke/ForceInline;", true);
+ } else {
+ mv.visitAnnotation("Ljava/lang/invoke/DontInline;", true);
+ }
+
// iterate over the form's names, generating bytecode instructions for each
// start iterating at the first name following the arguments