On 5/20/2013 7:50 PM, Coleen Phillimore wrote:
On 5/20/2013 8:42 PM, Dean Long wrote:
It seems like you could take this opportunity to make these declared fields of java.lang.Class, allowing, for example, getProtectionDomain0() to be a simple Java method instead of a native method.

We actually use the protection domain and init_lock from within the vm, so we want to be able to see it. Signers can be moved out eventually though.

The VM can already see Java fields. You would just need to initialize _protection_domain_offset using compute_offset() like we do for other fields. Java fields would also have the advantage of working with the new @Contended annotation, which probably doesn't work for injected fields. However for backwards compatability with an older class library you could use compute_optional_offset() and inject the field only if it's missing.

dl

Thanks,
Coleen


dl

On 05/20/2013 03:39 PM, Coleen Phillimore wrote:
Summary: Inject protection_domain, signers, init_lock into java_lang_Class

Net footprint change is zero except that these fields are in Java heap rather than metaspace. This helps a little with InstanceKlass size which is in fixed size space with UseCompressedKlassPointers. Included serviceability because there were SA changes to code that I don't know is used.

Future work is to remove the signers field and the unused SetProtectionDomain function.

open webrev at http://cr.openjdk.java.net/~coleenp/8003421/
bug link at http://bugs.sun.com/view_bug.do?bug_id=8003421

Tested with vm.quick.testlist, JPRT, jtreg java/security tests and jck8 tests.

Thanks,
Coleen



Reply via email to