[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
RE: [aspectj-users] Withincode pointcut??
|
Ok, I have to admit that the difference in semantics you point out looks
strange. I can only estimate that it has to do with the execution
pointcut semantics or invokevirtual (used for non-private methods) vs.
invokespecial (used for constructor execution) bytecodes.
The other point is that - I know this is not a satisfying answer - your
pointcut specifications do not make much sense. What does it mean if you
state that a method execution (or constructor execution) should occur
within the code of a method? Either this is always the case or never?
Maybe execution(* g()) && cflow(withincode(* f())) or something like
this is what you actually want to express.
Still, it's an interesting observation. Maybe the ajc guys can shed some
light on us.
--
Eric Bodden
Sable Research Group, McGill University
Montreal, Canada
> -----Original Message-----
> From: aspectj-users-bounces@xxxxxxxxxxx [mailto:aspectj-users-
> bounces@xxxxxxxxxxx] On Behalf Of Nadia Belblidia-Guerroumi
> Sent: Monday, May 29, 2006 7:20 PM
> To: aspectj-users@xxxxxxxxxxx
> Subject: [aspectj-users] Withincode pointcut??
>
> Hi everyone!
>
> Could somebody explain me why the pointcut withincode can match only
> against the following join points:
>
> method-call
> field-set
> constructor-call
> field-get
> exception-handler
> constructor-execution
> preinitialization
> initialization
>
> and not on execution-method also!?? Why Constructor-execution and not
> method execution??
>
> For example:
>
> withincode(public static void Main.f()) && execution(public static
void
> Main.f())
>
> Doesn't match but for the execution of public static void Main.f().
>
> whereas
>
> withincode(Main.new()) && execution(Main.new()) matches against
> execution of Main constructor.
>
>
>
> Thank you very much!