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