RFR: 8004823: Add VM support for type annotation reflection
Kelly O'Hair
kelly.ohair at oracle.com
Tue Dec 18 17:19:38 UTC 2012
mapfiles look fine.
-kto
On Dec 18, 2012, at 9:02 AM, Joel Borggrén-Franck wrote:
> Thanks for the review David!
>
> cheers
> /Joel
>
> On 12/18/2012 03:22 AM, David Holmes wrote:
>> Hi Joel,
>>
>> This all looks fine to me. I have no comments. Didn't even see any nits
>> to pick. :)
>>
>> Thanks,
>> David
>>
>> On 18/12/2012 2:47 AM, Joel Borggrén-Franck wrote:
>>> Hi,
>>>
>>> Here is a webrev for adding VM support for type annotation reflection:
>>> http://cr.openjdk.java.net/~jfranck/8004823/webrev.v4/
>>>
>>> Type annotations are coming with JDK 8, the proposed language changes
>>> can be found from here:
>>> http://openjdk.java.net/projects/type-annotations/
>>>
>>> Since runtime visible type annotations probably won't be that common
>>> I have tried to minimise overhead when there are no type annotations.
>>> This is done by adding a pointer to a type annotation Annotations
>>> instance from the regular annotations Annotations instance, see
>>> annotations.hpp. This means that if there are no runtime visible
>>> annotations there is no additional overhead with this patch since no
>>> Annotations instance will be allocated at all. If there is runtime
>>> visible annotations but no runtime visible type annotations there is
>>> an additional overhead of 1 pointer with this patch. If you use type
>>> annotations there will also be storage overhead, but that is to be
>>> expected.
>>>
>>> This patch also fixes that Annotations were never deallocated when
>>> InstanceKlass::deallocate_contents() were called.
>>>
>>> There is currently no redefineClass support for type annotations. This
>>> will be added later. In order avoid ship possibly broken bytes to
>>> java-land, type annotations are nulled out and deallocated after a
>>> redefineClass.
>>>
>>> This patch also exports a new method from jvm.h,
>>> JVM_GetClassTypeAnnotations, so map files are updated. Build-dev are
>>> included for review.
>>>
>>> Testing done:
>>> - vm.quick.testlis both on b67 and on a jdk that is patched with the
>>> new fields to Field, Method and Constructor
>>> - jprt full forrest build
>>> - jdk_lang in both b67 and the patched jdk
>>> - manual tests that we get the correct bytes out from the VM. These
>>> tests can be added once some more changes have propagated from the jdk
>>> repo
>>>
>>> FYI, The initial set of jdk changes are being reviewed on
>>> core-libs-dev:
>>> http://mail.openjdk.java.net/pipermail/core-libs-dev/2012-December/013016.html
>>>
>>>
>>> cheers
>>> /Joel
More information about the build-dev
mailing list