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