# HG changeset patch # User Christian Wimmer # Date 1431644481 25200 # Node ID 6f2ff1bccbf12e3c3ada52148e16a96033982748 # Parent 739d9d9bd2fc3372eea4e7ebca176f221a9388b8 Adhere to specification described in JavaDoc of interface diff -r 739d9d9bd2fc -r 6f2ff1bccbf1 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotConstantReflectionProvider.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotConstantReflectionProvider.java Thu May 14 16:00:20 2015 -0700 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotConstantReflectionProvider.java Thu May 14 16:01:21 2015 -0700 @@ -197,8 +197,7 @@ assert !ImmutableCode.getValue() || isCalledForSnippets() || SnippetGraphUnderConstruction.get() != null || HotSpotLoadFieldPlugin.FieldReadEnabledInImmutableCode.get() == Boolean.TRUE : receiver; HotSpotResolvedJavaField hotspotField = (HotSpotResolvedJavaField) field; - if (receiver == null) { - assert hotspotField.isStatic(); + if (hotspotField.isStatic()) { if (hotspotField.isFinal() || hotspotField.isStable()) { ResolvedJavaType holder = hotspotField.getDeclaringClass(); if (holder.isInitialized() && !holder.getName().equals(SystemClassName) && isEmbeddable(hotspotField)) { @@ -213,7 +212,6 @@ * for non-static final fields, we must assume that they are only initialized if they * have a non-default value. */ - assert !hotspotField.isStatic(); Object object = receiver.isNull() ? null : ((HotSpotObjectConstantImpl) receiver).object(); // Canonicalization may attempt to process an unsafe read before @@ -259,18 +257,17 @@ private JavaConstant readNonStableFieldValue(JavaField field, JavaConstant receiver) { HotSpotResolvedJavaField hotspotField = (HotSpotResolvedJavaField) field; - if (receiver == null) { - assert hotspotField.isStatic(); + if (hotspotField.isStatic()) { HotSpotResolvedJavaType holder = (HotSpotResolvedJavaType) hotspotField.getDeclaringClass(); if (holder.isInitialized()) { return memoryAccess.readUnsafeConstant(hotspotField.getKind(), HotSpotObjectConstantImpl.forObject(holder.mirror()), hotspotField.offset()); } - return null; } else { - assert !hotspotField.isStatic(); - assert receiver.isNonNull() && hotspotField.isInObject(((HotSpotObjectConstantImpl) receiver).object()); - return memoryAccess.readUnsafeConstant(hotspotField.getKind(), receiver, hotspotField.offset()); + if (receiver.isNonNull() && hotspotField.isInObject(((HotSpotObjectConstantImpl) receiver).object())) { + return memoryAccess.readUnsafeConstant(hotspotField.getKind(), receiver, hotspotField.offset()); + } } + return null; } public JavaConstant readStableFieldValue(JavaField field, JavaConstant receiver, boolean isDefaultStable) {