src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.common/src/org/graalvm/compiler/core/common/spi/JavaConstantFieldProvider.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.core.common/src/org/graalvm/compiler/core/common/spi/JavaConstantFieldProvider.java

src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.common/src/org/graalvm/compiler/core/common/spi/JavaConstantFieldProvider.java

Print this page

        

*** 22,32 **** */ package org.graalvm.compiler.core.common.spi; import org.graalvm.compiler.debug.GraalError; import org.graalvm.compiler.options.Option; ! import org.graalvm.compiler.options.OptionValue; import jdk.vm.ci.meta.JavaConstant; import jdk.vm.ci.meta.JavaType; import jdk.vm.ci.meta.MetaAccessProvider; import jdk.vm.ci.meta.ResolvedJavaField; --- 22,32 ---- */ package org.graalvm.compiler.core.common.spi; import org.graalvm.compiler.debug.GraalError; import org.graalvm.compiler.options.Option; ! import org.graalvm.compiler.options.OptionKey; import jdk.vm.ci.meta.JavaConstant; import jdk.vm.ci.meta.JavaType; import jdk.vm.ci.meta.MetaAccessProvider; import jdk.vm.ci.meta.ResolvedJavaField;
*** 37,47 **** */ public abstract class JavaConstantFieldProvider implements ConstantFieldProvider { static class Options { @Option(help = "Determines whether to treat final fields with default values as constant.")// ! public static final OptionValue<Boolean> TrustFinalDefaultFields = new OptionValue<>(true); } protected JavaConstantFieldProvider(MetaAccessProvider metaAccess) { try { this.stringValueField = metaAccess.lookupJavaField(String.class.getDeclaredField("value")); --- 37,47 ---- */ public abstract class JavaConstantFieldProvider implements ConstantFieldProvider { static class Options { @Option(help = "Determines whether to treat final fields with default values as constant.")// ! public static final OptionKey<Boolean> TrustFinalDefaultFields = new OptionKey<>(true); } protected JavaConstantFieldProvider(MetaAccessProvider metaAccess) { try { this.stringValueField = metaAccess.lookupJavaField(String.class.getDeclaredField("value"));
*** 91,112 **** return !value.isDefaultForKind(); } @SuppressWarnings("unused") protected boolean isFinalFieldValueConstant(ResolvedJavaField field, JavaConstant value, ConstantFieldTool<?> tool) { ! return !value.isDefaultForKind() || Options.TrustFinalDefaultFields.getValue(); } @SuppressWarnings("unused") protected boolean isStableField(ResolvedJavaField field, ConstantFieldTool<?> tool) { if (isSyntheticEnumSwitchMap(field)) { return true; } if (isWellKnownImplicitStableField(field)) { return true; } ! if (field == stringHashField) { return true; } return false; } --- 91,112 ---- return !value.isDefaultForKind(); } @SuppressWarnings("unused") protected boolean isFinalFieldValueConstant(ResolvedJavaField field, JavaConstant value, ConstantFieldTool<?> tool) { ! return !value.isDefaultForKind() || Options.TrustFinalDefaultFields.getValue(tool.getOptions()); } @SuppressWarnings("unused") protected boolean isStableField(ResolvedJavaField field, ConstantFieldTool<?> tool) { if (isSyntheticEnumSwitchMap(field)) { return true; } if (isWellKnownImplicitStableField(field)) { return true; } ! if (field.equals(stringHashField)) { return true; } return false; }
src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.common/src/org/graalvm/compiler/core/common/spi/JavaConstantFieldProvider.java
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File