From 42a85cc5b90cd0909b7f429f002d702f5ab2a688 Mon Sep 17 00:00:00 2001 From: chiba Date: Mon, 18 Jun 2007 23:51:07 +0000 Subject: [PATCH] fixed a bug of CtClassType#removeMehtod() etc. git-svn-id: http://anonsvn.jboss.org/repos/javassist/trunk@390 30ef5769-5b8d-40dd-aea6-55b5d6557bb3 --- src/main/javassist/CtClass.java | 3 +++ src/main/javassist/CtMember.java | 6 ++++-- src/main/javassist/CtMethod.java | 18 ++++++++++++++++++ 3 files changed, 25 insertions(+), 2 deletions(-) diff --git a/src/main/javassist/CtClass.java b/src/main/javassist/CtClass.java index a757ef0e..48a8ca21 100644 --- a/src/main/javassist/CtClass.java +++ b/src/main/javassist/CtClass.java @@ -560,6 +560,9 @@ public abstract class CtClass { * to addInterface(); it appends clazz to * the list of the super interfaces extended by that interface. * Note that an interface can extend multiple super interfaces. + * + * @see #replaceClassName(String, String) + * @see #replaceClassName(ClassMap) */ public void setSuperclass(CtClass clazz) throws CannotCompileException { checkModify(); diff --git a/src/main/javassist/CtMember.java b/src/main/javassist/CtMember.java index 2fde6cee..16ccc536 100644 --- a/src/main/javassist/CtMember.java +++ b/src/main/javassist/CtMember.java @@ -106,9 +106,11 @@ public abstract class CtMember { m.next = node.next; if (node == methodTail) methodTail = m; - else if (node == consTail) + + if (node == consTail) consTail = m; - else if (node == fieldTail) + + if (node == fieldTail) fieldTail = m; break; diff --git a/src/main/javassist/CtMethod.java b/src/main/javassist/CtMethod.java index 158f21af..3ed6aa77 100644 --- a/src/main/javassist/CtMethod.java +++ b/src/main/javassist/CtMethod.java @@ -125,6 +125,24 @@ public final class CtMethod extends CtBehavior { return CtNewMethod.make(src, declaring); } + /** + * Creates a method from a MethodInfo object. + * + * @param declaring the class declaring the method. + * @throws CannotCompileException if the the MethodInfo + * object and the declaring class have different + * ConstPool objects + * @since 3.6 + */ + public static CtMethod make(MethodInfo minfo, CtClass declaring) + throws CannotCompileException + { + if (declaring.getClassFile2().getConstPool() != minfo.getConstPool()) + throw new CannotCompileException("bad declaring class"); + + return new CtMethod(minfo, declaring); + } + /** * Returns a hash code value for the method. * If two methods have the same name and signature, then -- 2.39.5