summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--weaver/src/org/aspectj/weaver/NameMangler.java11
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";