[Nestmates] RFR: 8194409: [Nestmates] Update cpCache and related handling for invokeinterface of private interface methods (original) (raw)
David Holmes david.holmes at oracle.com
Thu Jan 11 08:12:29 UTC 2018
- Previous message (by thread): hg: valhalla/valhalla: 8191114: [Nestmates] Update access control exception handling and other features per final JVMS proposal
- Next message (by thread): hg: valhalla/valhalla: 2 new changesets
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
bug: https://bugs.openjdk.java.net/browse/JDK-8194409 webrev: http://cr.openjdk.java.net/~dholmes/8194409/webrev/
When we switched to using invokeinterface, instead of invokespecial, for private interface method invocations, it all "just worked" (more or less). But it turns out that it works in relation to the interpreter and cpCache in a way that causes the logic to follow a path reserved for the extreme corner case of invokeinterface targetting a non-public method of java.lang.Object. With the fix for JDK-8154587 (not yet in valhall repo) that path will now hit an assertion failure if the target method is not from Object.
So we set up a similar but specific path for private interface methods, through the cpCache logic in the TemplateTable interpreter and onto the LinkResolver.
Unfortunately the TemplateTable changes are architecture specific. I have proposed fixes for each OpenJDK architecture, but can only test for x86 and sparc. I will solicit assistance to get the Aarch64, PPC64 and S390 platforms tested before any of this gets out of the valhalla repo.
Thanks, David
- Previous message (by thread): hg: valhalla/valhalla: 8191114: [Nestmates] Update access control exception handling and other features per final JVMS proposal
- Next message (by thread): hg: valhalla/valhalla: 2 new changesets
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]