X-Git-Url: http://git.megacz.com/?p=org.ibex.classgen.git;a=blobdiff_plain;f=src%2Forg%2Fibex%2Fclassgen%2FMethodGen.java;h=96193daf9f3006382fbd2769c970ab143ad1d5cb;hp=e7733592b485641fac4abbed13fd311cf57d8e10;hb=0f4dbf22cb4e40d2f9cdedfb40b6e31647781b75;hpb=3dea58c2ff31192043a8d4108a2028912f7eb8be diff --git a/src/org/ibex/classgen/MethodGen.java b/src/org/ibex/classgen/MethodGen.java index e773359..96193da 100644 --- a/src/org/ibex/classgen/MethodGen.java +++ b/src/org/ibex/classgen/MethodGen.java @@ -10,10 +10,7 @@ public class MethodGen implements CGConst { private static final int NO_CODE = -1; - private final ClassFile cf; - private final String name; - private final Type ret; - private final Type[] args; + private final Type.Class.Method method; private final int flags; private final ClassFile.AttrGen attrs; private final ClassFile.AttrGen codeAttrs; @@ -78,26 +75,15 @@ public class MethodGen implements CGConst { }; sb.append(" ").append(ClassFile.flagsToString(flags,false)); - - if (name.equals("")) sb.append("static "); - else { - if (name.equals("")) - sb.append(constructorName); - else - sb.append(ret.debugToString()).append(" ").append(name); - sb.append("("); - for(int i=0; i 0) { - sb.append("throws"); - for(Enumeration e = thrownExceptions.keys();e.hasMoreElements();) - sb.append(" ").append(((Type.Class)e.nextElement()).debugToString()).append(","); - sb.setLength(sb.length()-1); - sb.append(" "); - } + sb.append(method.debugToString()); + if(thrownExceptions.size() > 0) { + sb.append("throws"); + for(Enumeration e = thrownExceptions.keys();e.hasMoreElements();) + sb.append(" ").append(((Type.Class)e.nextElement()).debugToString()).append(","); + sb.setLength(sb.length()-1); + sb.append(" "); } - if((flags & (ACC_NATIVE|ACC_ABSTRACT))==0) { + if((flags & (NATIVE|ABSTRACT))==0) { sb.append("{\n"); for(int i=0;i 0) attrs.put("Exceptions",""); attrs.finish(cp); codeAttrs.finish(cp); @@ -953,12 +930,12 @@ public class MethodGen implements CGConst { } void dump(DataOutput o, ConstantPool cp) throws IOException { - if((flags & (ACC_NATIVE|ACC_ABSTRACT))==0) generateCode(cp); + if((flags & (NATIVE|ABSTRACT))==0) generateCode(cp); generateExceptions(cp); o.writeShort(flags); - o.writeShort(cp.getUtf8Index(name)); - o.writeShort(cp.getUtf8Index(Type.methodTypeDescriptor(args,ret))); + o.writeShort(cp.getUtf8Index(method.name)); + o.writeShort(cp.getUtf8Index(method.getDescriptor())); attrs.dump(o,cp); }