Better binary compatibility for advice method names
- I've run the tests a thousand times and they all pass, I'm still nervous about this first big commit though *gulp*
Following yesterdays discussion, I'm temporarily adding a folder containing one file to see if it makes the build happy (we had to do this for adrians new module). If it fails then I'll delete it and wait for George to return who knows the right cruise control incantations to locate the problem.
generates accurate max stack height information for aspectOf method
this is a long-standing bug that was masked by the weaver which
would always recompute this field. optimizations to the weaver made
this bug appear again.
Adrian made me put these in. We seem to need a directory containing one file in order to satisfy the build script when it builds shadows.org.eclipse.jdt.core.
Make a full implementation of org.eclipse.jdt.core for use in AJDT
Pushdown of AjParser and AjScanner into shadows/org.eclipse.jdt.core.
New class DeclarationFactory handles creation of AJDT-specific types
on behalf of Parser.
Make a full implementation of org.eclipse.jdt.core for use in AJDT
Updated jdtcore jars, and an external builder configured in build
chain to refresh them from the shadows...
shadows/org.eclipse.jdt.core in your workspace (which will be
most of the time), this dummy project will satisfy the
build dependency of the HEAD org.eclipse.jdt.core project.
Lazy instantiation of thisJoinPoint
Speed-ups of 10-100X are measured even when running a small test case with minimal GC issues.
The actual feature implemented is that thisJoinPoint objects are only created just before calling the method for advice that requires them. To take advantage of this feature you must use an if PCD or some other dynamic test that occurs in the PCD not the advice body to guard the expensive creation of the thisJoinPoint object.
-XlazyTjp flag must be passed to compiler to enable this feature.
If any around advice is present on the joinpoint then lazy instantiation
will be disabled. An Xlint warning will be displayed in this case.
As a related optimization, several helper methods were added to
Factory.makeJP to reduce the code size when thisJoinPoint is used.