diff options
-rw-r--r-- | weaver/src/org/aspectj/weaver/NameMangler.java | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/weaver/src/org/aspectj/weaver/NameMangler.java b/weaver/src/org/aspectj/weaver/NameMangler.java index 4f9d336dc..a69420850 100644 --- a/weaver/src/org/aspectj/weaver/NameMangler.java +++ b/weaver/src/org/aspectj/weaver/NameMangler.java @@ -363,9 +363,18 @@ public class NameMangler { public static String aroundCallbackMethodName(Member shadowSig, LazyClassGen enclosingType) { StringBuffer ret = new StringBuffer(); - ret.append(shadowSig.getExtractableName()).append("_aroundBody").append(enclosingType.getNewGeneratedNameTag()); + ret.append(getExtractableName(shadowSig)).append("_aroundBody").append(enclosingType.getNewGeneratedNameTag()); return ret.toString(); } + + public static String getExtractableName(Member shadowSignature) { + String name = shadowSignature.getName(); + MemberKind kind = shadowSignature.getKind(); + if (kind==Member.CONSTRUCTOR) return "init$"; + else if (kind==Member.STATIC_INITIALIZATION) return "clinit$"; + else return name; + } + public static String proceedMethodName(String adviceMethodName) { return adviceMethodName + "proceed"; |