diff options
Diffstat (limited to 'org.aspectj.matcher/src/main/java/org/aspectj/weaver/AjcMemberMaker.java')
-rw-r--r-- | org.aspectj.matcher/src/main/java/org/aspectj/weaver/AjcMemberMaker.java | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/org.aspectj.matcher/src/main/java/org/aspectj/weaver/AjcMemberMaker.java b/org.aspectj.matcher/src/main/java/org/aspectj/weaver/AjcMemberMaker.java index 88e14400d..6375087a1 100644 --- a/org.aspectj.matcher/src/main/java/org/aspectj/weaver/AjcMemberMaker.java +++ b/org.aspectj.matcher/src/main/java/org/aspectj/weaver/AjcMemberMaker.java @@ -318,16 +318,25 @@ public class AjcMemberMaker { public static ResolvedMember inlineAccessMethodForMethod(UnresolvedType aspectType, ResolvedMember method) { UnresolvedType[] paramTypes = method.getParameterTypes(); + String[] paramNames = method.getParameterNames(); if (!Modifier.isStatic(method.getModifiers())) { paramTypes = UnresolvedType.insert(method.getDeclaringType(), paramTypes); + if (paramNames != null) { + String[] newParamNames = new String[paramNames.length+1]; + System.arraycopy(paramNames, 0, newParamNames, 1, paramNames.length); + newParamNames[0] = "targetInstance"; + paramNames = newParamNames; + } } - return new ResolvedMemberImpl(Member.METHOD, aspectType, + ResolvedMember inlineAccessMethodForMethod = new ResolvedMemberImpl(Member.METHOD, aspectType, PUBLIC_STATIC, // ??? what about privileged and super access - // ???Modifier.PUBLIC | (method.isStatic() ? Modifier.STATIC : 0), method.getReturnType(), - NameMangler.inlineAccessMethodForMethod(method.getName(), method.getDeclaringType(), aspectType), paramTypes, method.getExceptions()); + if (paramNames != null) { + inlineAccessMethodForMethod.setParameterNames(paramNames); + } + return inlineAccessMethodForMethod; } public static ResolvedMember inlineAccessMethodForFieldGet(UnresolvedType aspectType, Member field) { |