8164485: Zero forms not properly generated

Reviewed-by: psandoz
This commit is contained in:
Claes Redestad 2016-08-19 17:46:44 +02:00
parent f86257fff9
commit 069573f635
2 changed files with 1 additions and 12 deletions

View File

@ -43,18 +43,8 @@ class GenerateJLIClassesHelper {
ArrayList<String> names = new ArrayList<>();
HashSet<String> dedupSet = new HashSet<>();
for (LambdaForm.BasicType type : LambdaForm.BasicType.values()) {
LambdaForm zero = LambdaForm.zeroForm(type);
String name = zero.kind.defaultLambdaName
+ "_" + zero.returnType().basicTypeChar();
// since zero is the same as identity for Void, we deduplicate
// aggressively to guard against this specifically and not get
// caught on future equivalences
if (dedupSet.add(name)) {
names.add(name);
forms.add(zero);
}
LambdaForm identity = LambdaForm.identityForm(type);
name = identity.kind.defaultLambdaName
String name = identity.kind.defaultLambdaName
+ "_" + identity.returnType().basicTypeChar();
if (dedupSet.add(name)) {
names.add(name);

View File

@ -624,7 +624,6 @@ class InvokerBytecodeGenerator {
return resolveFrom(name, invokerType, DelegatingMethodHandle.Holder.class);
}
case DELEGATE: return resolveFrom(name, invokerType, DelegatingMethodHandle.Holder.class);
case ZERO: // fall-through
case IDENTITY: {
name = name + "_" + form.returnType().basicTypeChar();
return resolveFrom(name, invokerType, LambdaForm.Holder.class);