[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [aspectj-users] One target for intertype declarations
|
Hi Eric,
No, I guess that's a misinterpretation: The "bind" method creates a
new aspect instance for every argument object for which it does not
find yet a cached version:
I don't think (correct me if I'm wrong) this answers the point I'm
making. That is, I observed the following in the files
sootOutput/dava/src/test.java and sootOutput/dava/src/test2.java:
> public class test implements taspect$ajcMightHaveAspect
> {
> int testField;
> private transient taspect ajc$taspect$perObjectField;
and
> public class test2 extends test implements taspect$ajcMightHaveAspect
> {
> int test2Field;
> private transient taspect ajc$taspect$perObjectField;
Therefore, it seems to me that any instance of test2 will contain two
"ajc$taspect$perObjectField" fields, occupying a total of 2*word size
space.
I guess that, looking at the code for "taspect$ajcMightHaveAspect", it
seems that polymorphism will ensure only one of the fields is ever
actually used. So, is this right or have I missed something?
Cheers,
Dave
public static void ajc$perObjectBind(java.lang.Object r0)
{
if (r0 instanceof taspect$ajcMightHaveAspect != false)
{
if (((taspect$ajcMightHaveAspect)
r0).ajc$taspect$perObjectGet() == null)
{
/*HERE*/ ((taspect$ajcMightHaveAspect)
r0).ajc$taspect$perObjectSet(new taspect());
}
}
return;
}
Eric
- --
Eric Bodden
Chair I2 for Programming Languages and Program Analysis
RWTH Aachen University
-----BEGIN PGP SIGNATURE-----
Version: PGP 8.0.3
iQA/AwUBQaHvzMwiFCm7RlWCEQLJgwCeLWqsPBUkNPOC1vwXaNyB4XsgogQAoNHs
yF/rPEJy68gKQjyD9A9KAGWl
=HozS
-----END PGP SIGNATURE-----
_______________________________________________
aspectj-users mailing list
aspectj-users@xxxxxxxxxxx
http://dev.eclipse.org/mailman/listinfo/aspectj-users
Attachment:
pertargetTest.tgz
Description: Binary data