From 6d2abcdebf08ecd85d201f56485e3358cc41407b Mon Sep 17 00:00:00 2001 From: brian Date: Sat, 2 Jul 2005 23:06:01 +0000 Subject: [PATCH] Member.getDescriptor darcs-hash:20050702230601-24bed-9e63b489bd661489230fff789495b2d8e47cfc8d.gz --- src/org/ibex/classgen/ConstantPool.java | 2 +- src/org/ibex/classgen/MethodGen.java | 4 ++-- src/org/ibex/classgen/Type.java | 11 +++++++++-- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/src/org/ibex/classgen/ConstantPool.java b/src/org/ibex/classgen/ConstantPool.java index dbd958c..eb2497d 100644 --- a/src/org/ibex/classgen/ConstantPool.java +++ b/src/org/ibex/classgen/ConstantPool.java @@ -236,7 +236,7 @@ class ConstantPool implements CGConst { : m instanceof Type.Class.Method ? CONSTANT_METHODREF : 0; if (tag == 0) throw new Error("should never happen"); - ent = new MemberEnt(tag, m.getDeclaringClass(), m.name, m.getDescriptor()); + ent = new MemberEnt(tag, m.getDeclaringClass(), m.name, m.getTypeDescriptor()); } else { throw new IllegalArgumentException("Unknown type passed to add"); diff --git a/src/org/ibex/classgen/MethodGen.java b/src/org/ibex/classgen/MethodGen.java index 90edacd..c4ebfe9 100644 --- a/src/org/ibex/classgen/MethodGen.java +++ b/src/org/ibex/classgen/MethodGen.java @@ -579,7 +579,7 @@ public class MethodGen extends Type.Class.Method.Body implements CGConst { */ void finish(ConstantPool cp) { cp.addUtf8(method.name); - cp.addUtf8(method.getDescriptor()); + cp.addUtf8(method.getTypeDescriptor()); for(Enumeration e = thrownExceptions.keys();e.hasMoreElements();) cp.add(e.nextElement()); @@ -901,7 +901,7 @@ public class MethodGen extends Type.Class.Method.Body implements CGConst { o.writeShort(flags); o.writeShort(cp.getUtf8Index(method.name)); - o.writeShort(cp.getUtf8Index(method.getDescriptor())); + o.writeShort(cp.getUtf8Index(method.getTypeDescriptor())); attrs.dump(o,cp); } diff --git a/src/org/ibex/classgen/Type.java b/src/org/ibex/classgen/Type.java index 1a6ac97..f136d84 100644 --- a/src/org/ibex/classgen/Type.java +++ b/src/org/ibex/classgen/Type.java @@ -132,6 +132,14 @@ public class Type implements CGConst { private Member(String name) { this.name = name; } public Type.Class getDeclaringClass() { return Type.Class.this; } public abstract String getDescriptor(); + public boolean equals(Object o_) { + if(!(o_ instanceof Member)) return false; + Member o = (Member) o_; + return o.getDeclaringClass().equals(getDeclaringClass()) && + o.name.equals(name) && + o.getDescriptor().equals(getDescriptor()); + } + public int hashCode() { return getDeclaringClass().hashCode() ^ name.hashCode() ^ getDescriptor().hashCode(); } public String toString() { return debugToString(); } public abstract String debugToString(); } @@ -139,7 +147,7 @@ public class Type implements CGConst { public class Field extends Member { public final Type type; private Field(String name, Type t) { super(name); this.type = t; } - public String getDescriptor() { return type.getDescriptor(); } + public String getTypeDescriptor() { return type.getDescriptor(); } public Type getType() { return type; } public String debugToString() { return getDeclaringClass()+"."+name+"["+type+"]"; } public class Body extends HasFlags { @@ -183,7 +191,6 @@ public class Type implements CGConst { this.argTypes = argTypes; this.returnType = returnType; } - //public Method.Body getBody(Context cx) { } public String getDescriptor() { StringBuffer sb = new StringBuffer(argTypes.length*4); sb.append("("); -- 1.7.10.4