Lines 2328-2343
Link Here
|
2328 |
this.return_(); |
2328 |
this.return_(); |
2329 |
} |
2329 |
} |
2330 |
//static X valueOf(String name) { |
2330 |
//static X valueOf(String name) { |
2331 |
// return (X) Enum.valueOf(name, X.class); |
2331 |
// return (X) Enum.valueOf(X.class, name); |
2332 |
//} |
2332 |
//} |
2333 |
public void generateSyntheticBodyForEnumValueOf(SyntheticMethodBinding methodBinding) { |
2333 |
public void generateSyntheticBodyForEnumValueOf(SyntheticMethodBinding methodBinding) { |
2334 |
initializeMaxLocals(methodBinding); |
2334 |
initializeMaxLocals(methodBinding); |
2335 |
this.ldc(methodBinding.declaringClass); |
2335 |
final ReferenceBinding declaringClass = methodBinding.declaringClass; |
|
|
2336 |
this.ldc(declaringClass); |
2336 |
this.aload_0(); |
2337 |
this.aload_0(); |
2337 |
this.invokeJavaLangEnumvalueOf(); |
2338 |
this.invokeJavaLangEnumvalueOf(declaringClass); |
2338 |
this.checkcast(methodBinding.declaringClass); |
2339 |
this.checkcast(declaringClass); |
2339 |
this.areturn(); |
2340 |
this.areturn(); |
2340 |
} |
2341 |
} |
2341 |
//static X[] values() { |
2342 |
//static X[] values() { |
2342 |
// X[] values; |
2343 |
// X[] values; |
2343 |
// int length; |
2344 |
// int length; |
Lines 3904-3923
Link Here
|
3904 |
ConstantPool.DesiredAssertionStatus, |
3905 |
ConstantPool.DesiredAssertionStatus, |
3905 |
ConstantPool.DesiredAssertionStatusSignature); |
3906 |
ConstantPool.DesiredAssertionStatusSignature); |
3906 |
} |
3907 |
} |
3907 |
public void invokeJavaLangEnumname(TypeBinding typeBinding) { |
3908 |
public void invokeJavaLangEnumvalueOf(ReferenceBinding binding) { |
3908 |
// invokevirtual: java.lang.Enum.name()String |
3909 |
// invokestatic: java.lang.Enum.valueOf(Class,String) |
3909 |
if (DEBUG) System.out.println(position + "\t\tinvokevirtual: java.lang.Enum.name()Ljava/lang/String;"); //$NON-NLS-1$ |
3910 |
if (DEBUG) System.out.println(position + "\t\tinvokestatic: java.lang.Enum.valueOf(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum;"); //$NON-NLS-1$ |
3910 |
this.invoke( |
|
|
3911 |
Opcodes.OPC_invokevirtual, |
3912 |
0, // argCount |
3913 |
1, // return type size |
3914 |
typeBinding.constantPoolName(), |
3915 |
ConstantPool.Name, |
3916 |
ConstantPool.NameSignature); |
3917 |
} |
3918 |
public void invokeJavaLangEnumvalueOf() { |
3919 |
// invokevirtual: java.lang.Enum.valueOf(String,Class) |
3920 |
if (DEBUG) System.out.println(position + "\t\tinvokevirtual: java.lang.Enum.valueOf(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Enum;"); //$NON-NLS-1$ |
3921 |
this.invoke( |
3911 |
this.invoke( |
3922 |
Opcodes.OPC_invokestatic, |
3912 |
Opcodes.OPC_invokestatic, |
3923 |
2, // argCount |
3913 |
2, // argCount |
Lines 3942-3958
Link Here
|
3942 |
ConstantPool.Init, |
3932 |
ConstantPool.Init, |
3943 |
ConstantPool.StringConstructorSignature); |
3933 |
ConstantPool.StringConstructorSignature); |
3944 |
} |
3934 |
} |
3945 |
public void invokeJavaLangIllegalArgumentExceptionStringConstructor() { |
|
|
3946 |
// invokespecial: java.lang.IllegalArgumentException.<init>(String)V |
3947 |
if (DEBUG) System.out.println(position + "\t\tinvokespecial: java.lang.IllegalArgumentException.<init>(java.lang.String)V"); //$NON-NLS-1$ |
3948 |
this.invoke( |
3949 |
Opcodes.OPC_invokespecial, |
3950 |
1, // argCount |
3951 |
0, // return type size |
3952 |
ConstantPool.JavaLangIllegalArgumentExceptionConstantPoolName, |
3953 |
ConstantPool.Init, |
3954 |
ConstantPool.StringConstructorSignature); |
3955 |
} |
3956 |
public void invokeJavaLangReflectConstructorNewInstance() { |
3935 |
public void invokeJavaLangReflectConstructorNewInstance() { |
3957 |
// invokevirtual: java.lang.reflect.Constructor.newInstance([Ljava.lang.Object;)Ljava.lang.Object; |
3936 |
// invokevirtual: java.lang.reflect.Constructor.newInstance([Ljava.lang.Object;)Ljava.lang.Object; |
3958 |
this.invoke( |
3937 |
this.invoke( |
Lines 4376-4392
Link Here
|
4376 |
ConstantPool.ToString, |
4355 |
ConstantPool.ToString, |
4377 |
ConstantPool.ToStringSignature); |
4356 |
ConstantPool.ToStringSignature); |
4378 |
} |
4357 |
} |
4379 |
public void invokeStringEquals() { |
|
|
4380 |
// invokevirtual: java.lang.String.equals(java.lang.Object) |
4381 |
if (DEBUG) System.out.println(position + "\t\tinvokevirtual: java.lang.String.equals(...)"); //$NON-NLS-1$ |
4382 |
this.invoke( |
4383 |
Opcodes.OPC_invokevirtual, |
4384 |
1, // argCount |
4385 |
1, // return type size |
4386 |
ConstantPool.JavaLangStringConstantPoolName, |
4387 |
ConstantPool.Equals, |
4388 |
ConstantPool.EqualsSignature); |
4389 |
} |
4390 |
public void invokeStringIntern() { |
4358 |
public void invokeStringIntern() { |
4391 |
// invokevirtual: java.lang.String.intern() |
4359 |
// invokevirtual: java.lang.String.intern() |
4392 |
if (DEBUG) System.out.println(position + "\t\tinvokevirtual: java.lang.String.intern()"); //$NON-NLS-1$ |
4360 |
if (DEBUG) System.out.println(position + "\t\tinvokevirtual: java.lang.String.intern()"); //$NON-NLS-1$ |
Lines 5552-5571
Link Here
|
5552 |
bCodeStream[classFileOffset++] = Opcodes.OPC_new; |
5520 |
bCodeStream[classFileOffset++] = Opcodes.OPC_new; |
5553 |
writeUnsignedShort(constantPool.literalIndexForType(ConstantPool.JavaLangErrorConstantPoolName)); |
5521 |
writeUnsignedShort(constantPool.literalIndexForType(ConstantPool.JavaLangErrorConstantPoolName)); |
5554 |
} |
5522 |
} |
5555 |
public void newJavaLangIllegalArgumentException() { |
|
|
5556 |
// new: java.lang.IllegalArgumentException |
5557 |
if (DEBUG) System.out.println(position + "\t\tnew: java.lang.IllegalArgumentException"); //$NON-NLS-1$ |
5558 |
countLabels = 0; |
5559 |
stackDepth++; |
5560 |
if (stackDepth > stackMax) |
5561 |
stackMax = stackDepth; |
5562 |
if (classFileOffset + 2 >= bCodeStream.length) { |
5563 |
resizeByteArray(); |
5564 |
} |
5565 |
position++; |
5566 |
bCodeStream[classFileOffset++] = Opcodes.OPC_new; |
5567 |
writeUnsignedShort(constantPool.literalIndexForType(ConstantPool.JavaLangIllegalArgumentExceptionConstantPoolName)); |
5568 |
} |
5569 |
public void newNoClassDefFoundError() { |
5523 |
public void newNoClassDefFoundError() { |
5570 |
// new: java.lang.NoClassDefFoundError |
5524 |
// new: java.lang.NoClassDefFoundError |
5571 |
if (DEBUG) System.out.println(position + "\t\tnew: java.lang.NoClassDefFoundError"); //$NON-NLS-1$ |
5525 |
if (DEBUG) System.out.println(position + "\t\tnew: java.lang.NoClassDefFoundError"); //$NON-NLS-1$ |