Mercurial > hg > graal-jvmci-8
changeset 23750:b39b4a11c1d1
restore API - backward compatibilty support for Graal
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Wed, 07 Sep 2016 16:45:44 +0200 |
parents | d6bd0b9cd0b6 |
children | b1b5c71c04b7 |
files | jvmci/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotModifiers.java jvmci/jdk.vm.ci.meta/src/jdk/vm/ci/meta/ModifiersProvider.java |
diffstat | 2 files changed, 20 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/jvmci/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotModifiers.java Wed Sep 07 15:17:13 2016 +0200 +++ b/jvmci/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotModifiers.java Wed Sep 07 16:45:44 2016 +0200 @@ -42,7 +42,7 @@ * The modifiers not public in {@link Modifier} that need to be retrieved from * {@link HotSpotVMConfig}. */ -interface HotSpotModifiers { +public interface HotSpotModifiers { // @formatter:off int ANNOTATION = config().jvmAccAnnotation;
--- a/jvmci/jdk.vm.ci.meta/src/jdk/vm/ci/meta/ModifiersProvider.java Wed Sep 07 15:17:13 2016 +0200 +++ b/jvmci/jdk.vm.ci.meta/src/jdk/vm/ci/meta/ModifiersProvider.java Wed Sep 07 16:45:44 2016 +0200 @@ -22,9 +22,13 @@ */ package jdk.vm.ci.meta; +import static java.lang.reflect.Modifier.FINAL; import static java.lang.reflect.Modifier.PRIVATE; import static java.lang.reflect.Modifier.PROTECTED; import static java.lang.reflect.Modifier.PUBLIC; +import static java.lang.reflect.Modifier.STATIC; +import static java.lang.reflect.Modifier.TRANSIENT; +import static java.lang.reflect.Modifier.VOLATILE; import java.lang.reflect.Modifier; @@ -144,4 +148,19 @@ default boolean isConcrete() { return !isAbstract(); } + + /** + * This is removed in JDK 9 and should not be used. It used to rely on use of reflection to read + * non-public values from {@link Modifier}. Such cross-module (i.e., {@code jdk.vm.ci} to + * {@code java.base}) reflection is disabled in 9 and will require a VM option such + * {@code --add-exports-private} to be enabled. + */ + @Deprecated + static int jvmFieldModifiers() { + // Reflection replaced with hard coded values (which will not change in JDK 8). + final int accEnum = 0x4000; + final int accSynthethic = 0x1000; + return PUBLIC | PRIVATE | PROTECTED | STATIC | FINAL | VOLATILE | TRANSIENT | accEnum | accSynthethic; + } + }