Hi, Thanks for the comments. I removed the allocations and fixed the quadratic copy in popAllLocations.
New webrev: http://cr.openjdk.java.net/~jfranck/8057804/webrev.01/ cheers /Joel On Thu, Nov 19, 2015 at 2:07 PM, Claes Redestad <claes.redes...@oracle.com> wrote: > Hi Joel, > > looks good. I see a CCC has been filed. > > Nits: > In AnnotatedTypeFactory.java, newly introduced EMPTY_TYPE_ANNOTATION_ARRAY > could be used to replace a few occurrences of new TypeAnnotation[0] in the > code above). > > In TypeAnnotation.java: > New method popLocation(byte tag) seems to be unused, and popLocation() is > only used from popAllLocations(byte tag), so it might suffice to only keep > popAllLocations: > > public LocationInfo popAllLocations(byte tag) { > LocationInfo l = this; > int depth = l.depth; > while(depth > 0 && l.locations[depth - 1].tag == tag) { > depth--; > } > if (depth != l.depth) { > Location[] res = new Location[depth]; > System.arraycopy(this.locations, 0, res, 0, depth); > return new LocationInfo(depth, res); > } > return l; > } > > Not a reviewer, easy to ignore. :-) > > /Claes > > > On 2015-11-17 20:15, Joel Borggrén-Franck wrote: >> >> Hi, >> >> When reflecting over annotated types, there is currently no way to get >> the potentially annotated owner of a type. For example, given you have >> an instance of '@A Outer . @B Inner' you can't traverse it to get '@A >> Outer' . >> >> This API addition fixes this. Because both parameterized and >> non-generic types can have an owner, this addition goes into the base >> AnnotatedType interface together with a default implementation. CCC >> has been filed. >> >> The parsing code and annotated type factory had to be fixed to deal >> with navigating inside nested types. >> >> Bug: https://bugs.openjdk.java.net/browse/JDK-8057804 >> Webrev: http://cr.openjdk.java.net/~rbackman/jbf/8057804/webrev.00/ >> >> >> (OCA is signed and processed). >> >> Cheers >> /Joel > >