X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=src%2Forg%2Fibex%2Fclassgen%2FMethodRef.java;h=399195ccb54aeef9eafb8becc09c38cd753b8b3c;hb=d60e86de7947e6e628b5f90dfe19bee7f7a26bd0;hp=2f69e9a973a42b20b45c33a21ec93d2f40262a84;hpb=4844910be8170dc35fb1b993bb2c9e7e6d7d15e6;p=org.ibex.classgen.git diff --git a/src/org/ibex/classgen/MethodRef.java b/src/org/ibex/classgen/MethodRef.java index 2f69e9a..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.Class c, String name, Type ret, Type[] args) { - super(c, name, getDescriptor(ret, args)); - } - /** Equivalent to MethodRef(new Type.Class(s), ...) - @see #MethodRef(Type.Class, String, Type, Type[]) - */ - public MethodRef(String s, String name, Type ret, Type[] args) { - this(Type.instance(s).asClass(), 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