X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=src%2Forg%2Fibex%2Fclassgen%2FMethodRef.java;h=399195ccb54aeef9eafb8becc09c38cd753b8b3c;hb=d60e86de7947e6e628b5f90dfe19bee7f7a26bd0;hp=52ccf2fa74ae1a48dbb262102732963a8c492f69;hpb=2b7157f2b687f5500bf45ab2c9175ef1b33ccc48;p=org.ibex.classgen.git
diff --git a/src/org/ibex/classgen/MethodRef.java b/src/org/ibex/classgen/MethodRef.java
index 52ccf2f..399195c 100644
--- a/src/org/ibex/classgen/MethodRef.java
+++ b/src/org/ibex/classgen/MethodRef.java
@@ -7,26 +7,25 @@ package org.ibex.classgen;
@see CGConst#INVOKESPECIAL
@see CGConst#INVOKEINTERFACE
*/
-public class MethodRef extends ClassGen.FieldOrMethodRef {
+public class MethodRef extends MemberRef {
+
+ final Type[] argTypes;
+ final Type returnType;
+
/** Create a reference to method name of class c with the return type ret and the
arguments args */
- public MethodRef(Type.Object c, String name, Type ret, Type[] args) {
- super(c,name,getDescriptor(ret,args));
- }
- /** Equivalent to MethodRef(new Type.Object(s),...)
- @see #MethodRef(Type.Object,String,Type,Type[])
- */
- public MethodRef(String s, String name, Type ret, Type[] args) {
- this(Type.fromDescriptor(s).asObject(), name, ret, args);
+ public MethodRef(Type.Class c, String name, Type returnType, Type[] argTypes) {
+ super(c, name);
+ this.argTypes = argTypes;
+ this.returnType = returnType;
}
- MethodRef(MethodRef i) { super(i); }
- static String getDescriptor(Type ret, Type[] args) {
- StringBuffer sb = new StringBuffer(args.length*4);
+ public String getDescriptor() {
+ StringBuffer sb = new StringBuffer(argTypes.length*4);
sb.append("(");
- for(int i=0;i