RFR: 8009719: core reflection should get type annotation data from the VM lazily

Joel Borggren-Franck joel.franck at oracle.com
Sat Sep 21 14:26:47 UTC 2013


A while ago [1] I introduced an extra field in to j.l.r.Method,
j.l.r.Constructor, and j.l.r.Field in order to support reflection for
type annotations. These fields were intended to be removed later, they
were there to make the coordination between VM and libraries easier when
implementing reflection for type annotations.

This change removes the fields. Reflection for type annotations simply
get the bytes from the vm lazily when it needs them. Because reflection
for type annotations is suspected to be fairly uncommon and not
performance critical no caching is done. This can be changed later.

The vm side of things were pushed a while back [2], this is the JDK side
of the changes.

This is a refactoring, all current annotation and type annotation tests
pass after this change.

Webrev: http://cr.openjdk.java.net/~jfranck/8009719/webrev.01/
Bug id: https://bugs.openjdk.java.net/browse/JDK-8009719

Also including build-dev since I needed to update the mapfiles. To my
knowledge I have updated both the old and the new build.

Please review


[1] : http://hg.openjdk.java.net/jdk8/jdk8/jdk/rev/6d977f61af5e
[2] : http://hg.openjdk.java.net/jdk8/jdk8/hotspot/rev/1916ca1dec2f

More information about the core-libs-dev mailing list