Re: [abc-users] Tagging AspectJ Compiler

From: Guillaume Pothier <gpothier_at_gmail.com>
Date: Fri, 7 Sep 2007 19:14:38 -0400

Hi,
a few more questions regarding tagging.
There is an instruction kind value for residue evaluation: ADVICE_TEST
in InstructionKindTag, but when I compile the example below with
tagging enabled, that tag is not used.

The pointcut is:
        pointcut cond(int x): call(* A.foo(int))
                && target(B)
                && args(x)
                && if(x<3);

and the base code is:
                A a = new B();
                a.foo(x);

There are two tests in the residue: whether the object is actually an
instance of B, and whether the argument is less than 3. But the
bytecode instructions that perform thoses tests are tagged as
ADVICE_ARG_SETUP.
Am I missing something?

Regards,
g

On 8/1/07, Guillaume Pothier <gpothier_at_gmail.com> wrote:
> > The abc implementation of tagging is newer than the ajdt one
> > and will be a bit different as the weaving instructions used
> > in abc is a bit different.
> >
>
> Ok that's cool!
> So each generated instruction is tagged with an InstructionKindTag
> which can be DEFAULT (which corresponds to base code) or any of the
> other kinds defined in InstructionKindTag, right?
> If I understand, the tags are then embedded in the class files as code
> attributes in each method where the content of the attribute is a list
> of (label,tag) pairs, encoded in Base64.
> Is there some code, in abc or elsewhere, that reads tagged class files
> and decodes those tags?
> Regards,
> g
>
Received on Sat Sep 08 2007 - 00:14:42 BST

This archive was generated by hypermail 2.2.0 : Fri Sep 14 2007 - 01:20:11 BST