Skip to content

Commit 8b77e42

Browse files
committed
[JVMCI] add ResolvedJavaType#isHidden [GR-70158]
1 parent 4237d45 commit 8b77e42

File tree

16 files changed

+82
-0
lines changed

16 files changed

+82
-0
lines changed

compiler/src/jdk.graal.compiler/src/jdk/graal/compiler/hotspot/SnippetResolvedJavaType.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -242,6 +242,11 @@ public ResolvedJavaType getArrayClass() {
242242
return arrayOfType;
243243
}
244244

245+
@Override
246+
public boolean isHidden() {
247+
throw new UnsupportedOperationException();
248+
}
249+
245250
@Override
246251
public List<JavaType> getPermittedSubclasses() {
247252
throw new UnsupportedOperationException();

compiler/src/jdk.graal.compiler/src/jdk/graal/compiler/hotspot/replaycomp/proxy/HotSpotResolvedJavaTypeProxy.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,14 @@ public final HotSpotResolvedObjectType getArrayClass() {
8686
return (HotSpotResolvedObjectType) handle(getArrayClassMethod, getArrayClassInvokable);
8787
}
8888

89+
private static final SymbolicMethod isHiddenMethod = method("isHidden");
90+
private static final InvokableMethod isHiddenInvokable = (receiver, args) -> ((HotSpotResolvedObjectType) receiver).isHidden();
91+
92+
@Override
93+
public boolean isHidden() {
94+
return (boolean) handle(isHiddenMethod, isHiddenInvokable);
95+
}
96+
8997
private static final SymbolicMethod getPermittedSubclassesMethod = method("getPermittedSubclasses");
9098
private static final InvokableMethod getPermittedSubclassesInvokable = (receiver, args) -> ((HotSpotResolvedJavaType) receiver).getPermittedSubclasses();
9199

espresso/src/com.oracle.truffle.espresso.jvmci/src/com/oracle/truffle/espresso/jvmci/meta/EspressoResolvedArrayType.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -218,6 +218,11 @@ public EspressoResolvedArrayType getArrayClass() {
218218
return arrayType;
219219
}
220220

221+
@Override
222+
public boolean isHidden() {
223+
return false;
224+
}
225+
221226
@Override
222227
public List<JavaType> getPermittedSubclasses() {
223228
return null;

espresso/src/com.oracle.truffle.espresso.jvmci/src/com/oracle/truffle/espresso/jvmci/meta/EspressoResolvedInstanceType.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -273,6 +273,9 @@ public ResolvedJavaType getComponentType() {
273273
return null;
274274
}
275275

276+
@Override
277+
public native boolean isHidden();
278+
276279
@Override
277280
public List<JavaType> getPermittedSubclasses() {
278281
Class<?>[] permittedSubclass = getPermittedSubclasses0(getMirror());

espresso/src/com.oracle.truffle.espresso.jvmci/src/com/oracle/truffle/espresso/jvmci/meta/EspressoResolvedPrimitiveType.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,11 @@ public ResolvedJavaType getComponentType() {
187187
return null;
188188
}
189189

190+
@Override
191+
public boolean isHidden() {
192+
return false;
193+
}
194+
190195
@Override
191196
public List<JavaType> getPermittedSubclasses() {
192197
return null;

espresso/src/com.oracle.truffle.espresso/src/com/oracle/truffle/espresso/substitutions/jvmci/Target_com_oracle_truffle_espresso_jvmci_meta_EspressoResolvedInstanceType.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,11 @@ static StaticObject doDefault(StaticObject self,
8888
}
8989
}
9090

91+
@Substitution
92+
public static boolean isHidden(@JavaType(Class.class) StaticObject self, @Inject EspressoContext context) {
93+
return context.getVM().JVM_IsHiddenClass(self);
94+
}
95+
9196
@Substitution
9297
public static @JavaType(Class[].class) StaticObject getPermittedSubclasses0(@JavaType(Class.class) StaticObject self, @Inject EspressoContext context) {
9398
return context.getVM().JVM_GetPermittedSubclasses(self);

substratevm/src/com.oracle.graal.pointsto/src/com/oracle/graal/pointsto/meta/AnalysisType.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -972,6 +972,11 @@ public final AnalysisType getArrayClass() {
972972
return arrayClass;
973973
}
974974

975+
@Override
976+
public boolean isHidden() {
977+
return wrapped.isHidden();
978+
}
979+
975980
@Override
976981
public List<? extends AnalysisType> getPermittedSubclasses() {
977982
if (permittedSubclasses == PERMITTED_SUBCLASSES_UNINITIALIZED) {

substratevm/src/com.oracle.graal.pointsto/src/com/oracle/graal/pointsto/meta/BaseLayerType.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -226,6 +226,11 @@ public ResolvedJavaType getArrayClass() {
226226
throw AnalysisError.shouldNotReachHere("This type is incomplete and should not be used.");
227227
}
228228

229+
@Override
230+
public boolean isHidden() {
231+
throw AnalysisError.shouldNotReachHere("This type is incomplete and should not be used.");
232+
}
233+
229234
@Override
230235
public List<JavaType> getPermittedSubclasses() {
231236
throw AnalysisError.shouldNotReachHere("This type is incomplete and should not be used.");

substratevm/src/com.oracle.svm.graal/src/com/oracle/svm/graal/meta/SubstrateType.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -318,6 +318,11 @@ public ResolvedJavaType getArrayClass() {
318318
return SubstrateMetaAccess.singleton().lookupJavaTypeFromHub(hub.getArrayHub());
319319
}
320320

321+
@Override
322+
public boolean isHidden() {
323+
return hub.isHidden();
324+
}
325+
321326
@Override
322327
public List<? extends SubstrateType> getPermittedSubclasses() {
323328
Class<?>[] hubPermittedSubclasses = hub.getPermittedSubclasses();

substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/annotation/CustomSubstitutionType.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -206,6 +206,11 @@ public ResolvedJavaType getArrayClass() {
206206
return original.getArrayClass();
207207
}
208208

209+
@Override
210+
public boolean isHidden() {
211+
return original.isHidden();
212+
}
213+
209214
@Override
210215
public List<? extends JavaType> getPermittedSubclasses() {
211216
return original.getPermittedSubclasses();

0 commit comments

Comments
 (0)