fixed bugs in other privileged access handlingtags/V_1_1_b2
return ret; | return ret; | ||||
} | } | ||||
public void notePrivilegedTypeAccess(ReferenceBinding type) { | |||||
ResolvedMember key = | |||||
new ResolvedMember(Member.STATIC_INITIALIZATION, | |||||
inAspect.world.fromEclipse(type), 0, ResolvedTypeX.VOID, "", TypeX.NONE); | |||||
accessors.put(key, key); | |||||
} | |||||
public ResolvedMember[] getMembers() { | public ResolvedMember[] getMembers() { | ||||
Collection m = accessors.keySet(); | Collection m = accessors.keySet(); | ||||
int len = m.size(); | int len = m.size(); | ||||
return ret; | return ret; | ||||
} | } | ||||
} | } |
* @author Jim Hugunin | * @author Jim Hugunin | ||||
*/ | */ | ||||
public class AjProblemReporter extends ProblemReporter { | public class AjProblemReporter extends ProblemReporter { | ||||
private static final boolean DUMP_STACK = false; | |||||
private static final boolean DUMP_STACK = true; | |||||
public EclipseWorld world; | public EclipseWorld world; | ||||
} else if (member.getKind() == Member.METHOD) { | } else if (member.getKind() == Member.METHOD) { | ||||
addMethodDispatch(gen, member, | addMethodDispatch(gen, member, | ||||
AjcMemberMaker.privilegedAccessMethodForMethod(aspectType, member)); | AjcMemberMaker.privilegedAccessMethodForMethod(aspectType, member)); | ||||
return true; | |||||
} else if (member.getKind() == Member.STATIC_INITIALIZATION) { | |||||
gen.forcePublic(); | |||||
return true; | |||||
} else { | } else { | ||||
throw new RuntimeException("unimplemented"); | throw new RuntimeException("unimplemented"); | ||||
} | } |
throw new BCException("Class " + this.getName() + " does not have a method " | throw new BCException("Class " + this.getName() + " does not have a method " | ||||
+ name + " with signature " + signature); | + name + " with signature " + signature); | ||||
} | } | ||||
public void forcePublic() { | |||||
myGen.setAccessFlags(Utility.makePublic(myGen.getAccessFlags())); | |||||
} | |||||
} | } |