Skip to content

Commit 6177404

Browse files
committed
Correct identity check.
1 parent a04d538 commit 6177404

File tree

2 files changed

+6
-6
lines changed

2 files changed

+6
-6
lines changed

src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -450,7 +450,10 @@ public boolean isInterface() {
450450

451451
@Override
452452
public boolean isIdentity() {
453-
return (getAccessFlags() & config().jvmAccIdentity) != 0;
453+
if (!config().valhallaEnabled) {
454+
return !isInterface();
455+
}
456+
return isArray() || (getAccessFlags() & config().jvmAccIdentity) != 0;
454457
}
455458

456459
@Override
@@ -1284,9 +1287,5 @@ private List<AnnotationData> getAnnotationData0(ResolvedJavaType... filter) {
12841287
byte[] encoded = compilerToVM().getEncodedClassAnnotationData(this, filter);
12851288
return VMSupport.decodeAnnotations(encoded, AnnotationDataDecoder.INSTANCE);
12861289
}
1287-
1288-
public boolean canBePassedAsFields() {
1289-
if (isStatic() || isInterface() || !isIdentity()) return false;
1290-
return compilerToVM().canBePassedAsFields(this);
1291-
}
1290+
12921291
}

src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotVMConfig.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ String getHostArchitectureName() {
7171
final int objectAlignment = getFlag("ObjectAlignmentInBytes", Integer.class);
7272

7373
final int klassOffsetInBytes = getFieldValue("CompilerToVM::Data::oopDesc_klass_offset_in_bytes", Integer.class, "int");
74+
public final boolean valhallaEnabled = getFlag("EnableValhalla", Boolean.class);
7475

7576
final int subklassOffset = getFieldOffset("Klass::_subklass", Integer.class, "Klass*");
7677
final int superOffset = getFieldOffset("Klass::_super", Integer.class, "Klass*");

0 commit comments

Comments
 (0)