src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/replacements/HotSpotClassSubstitutions.java
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File hotspot Cdiff src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/replacements/HotSpotClassSubstitutions.java

src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/replacements/HotSpotClassSubstitutions.java

Print this page

        

*** 37,46 **** --- 37,47 ---- import org.graalvm.compiler.api.replacements.ClassSubstitution; import org.graalvm.compiler.api.replacements.MethodSubstitution; import org.graalvm.compiler.hotspot.word.KlassPointer; import org.graalvm.compiler.nodes.PiNode; + import org.graalvm.compiler.nodes.SnippetAnchorNode; // JaCoCo Exclude /** * Substitutions for {@link java.lang.Class} methods.
*** 76,86 **** KlassPointer klass = ClassGetHubNode.readClass(thisObj); if (klass.isNull()) { // Class for primitive type return false; } else { ! return klassIsArray(klass); } } @MethodSubstitution(isStatic = false) public static boolean isPrimitive(final Class<?> thisObj) { --- 77,88 ---- KlassPointer klass = ClassGetHubNode.readClass(thisObj); if (klass.isNull()) { // Class for primitive type return false; } else { ! KlassPointer klassNonNull = ClassGetHubNode.piCastNonNull(klass, SnippetAnchorNode.anchor()); ! return klassIsArray(klassNonNull); } } @MethodSubstitution(isStatic = false) public static boolean isPrimitive(final Class<?> thisObj) {
*** 90,128 **** @MethodSubstitution(isStatic = false) public static Class<?> getSuperclass(final Class<?> thisObj) { KlassPointer klass = ClassGetHubNode.readClass(thisObj); if (!klass.isNull()) { ! int accessFlags = klass.readInt(klassAccessFlagsOffset(INJECTED_VMCONFIG), KLASS_ACCESS_FLAGS_LOCATION); if ((accessFlags & Modifier.INTERFACE) == 0) { ! if (klassIsArray(klass)) { return Object.class; } else { ! KlassPointer superKlass = klass.readKlassPointer(klassSuperKlassOffset(INJECTED_VMCONFIG), KLASS_SUPER_KLASS_LOCATION); if (superKlass.isNull()) { return null; } else { ! return readJavaMirror(superKlass); } } } } else { // Class for primitive type } return null; } - public static Class<?> readJavaMirror(KlassPointer klass) { - return PiNode.asNonNullClass(HubGetClassNode.readClass(klass)); - } - @MethodSubstitution(isStatic = false) public static Class<?> getComponentType(final Class<?> thisObj) { KlassPointer klass = ClassGetHubNode.readClass(thisObj); if (!klass.isNull()) { ! if (klassIsArray(klass)) { ! return PiNode.asNonNullClass(klass.readObject(arrayKlassComponentMirrorOffset(INJECTED_VMCONFIG), ARRAY_KLASS_COMPONENT_MIRROR)); } } else { // Class for primitive type } return null; --- 92,129 ---- @MethodSubstitution(isStatic = false) public static Class<?> getSuperclass(final Class<?> thisObj) { KlassPointer klass = ClassGetHubNode.readClass(thisObj); if (!klass.isNull()) { ! KlassPointer klassNonNull = ClassGetHubNode.piCastNonNull(klass, SnippetAnchorNode.anchor()); ! int accessFlags = klassNonNull.readInt(klassAccessFlagsOffset(INJECTED_VMCONFIG), KLASS_ACCESS_FLAGS_LOCATION); if ((accessFlags & Modifier.INTERFACE) == 0) { ! if (klassIsArray(klassNonNull)) { return Object.class; } else { ! KlassPointer superKlass = klassNonNull.readKlassPointer(klassSuperKlassOffset(INJECTED_VMCONFIG), KLASS_SUPER_KLASS_LOCATION); if (superKlass.isNull()) { return null; } else { ! KlassPointer superKlassNonNull = ClassGetHubNode.piCastNonNull(superKlass, SnippetAnchorNode.anchor()); ! return HubGetClassNode.readClass(superKlassNonNull); } } } } else { // Class for primitive type } return null; } @MethodSubstitution(isStatic = false) public static Class<?> getComponentType(final Class<?> thisObj) { KlassPointer klass = ClassGetHubNode.readClass(thisObj); if (!klass.isNull()) { ! KlassPointer klassNonNull = ClassGetHubNode.piCastNonNull(klass, SnippetAnchorNode.anchor()); ! if (klassIsArray(klassNonNull)) { ! return PiNode.asNonNullClass(klassNonNull.readObject(arrayKlassComponentMirrorOffset(INJECTED_VMCONFIG), ARRAY_KLASS_COMPONENT_MIRROR)); } } else { // Class for primitive type } return null;
src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/replacements/HotSpotClassSubstitutions.java
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File