comparison jvmci/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl.java @ 24111:8abcd8e1285d

missing checks in HotSpotMemoryAccessProviderImpl can cause VM assertions to fail (JDK-8177673)
author Doug Simon <doug.simon@oracle.com>
date Thu, 30 Mar 2017 21:18:43 +0200
parents 839dcc4f2cf6
children 6d70d9c43369
comparison
equal deleted inserted replaced
24110:a8378ff1936d 24111:8abcd8e1285d
840 } 840 }
841 841
842 @Override 842 @Override
843 public ResolvedJavaField findInstanceFieldWithOffset(long offset, JavaKind expectedEntryKind) { 843 public ResolvedJavaField findInstanceFieldWithOffset(long offset, JavaKind expectedEntryKind) {
844 ResolvedJavaField[] declaredFields = getInstanceFields(true); 844 ResolvedJavaField[] declaredFields = getInstanceFields(true);
845 return findFieldWithOffset(offset, expectedEntryKind, declaredFields);
846 }
847
848 public ResolvedJavaField findStaticFieldWithOffset(long offset, JavaKind expectedEntryKind) {
849 ResolvedJavaField[] declaredFields = getStaticFields();
850 return findFieldWithOffset(offset, expectedEntryKind, declaredFields);
851 }
852
853 private static ResolvedJavaField findFieldWithOffset(long offset, JavaKind expectedEntryKind, ResolvedJavaField[] declaredFields) {
845 for (ResolvedJavaField field : declaredFields) { 854 for (ResolvedJavaField field : declaredFields) {
846 HotSpotResolvedJavaField resolvedField = (HotSpotResolvedJavaField) field; 855 HotSpotResolvedJavaField resolvedField = (HotSpotResolvedJavaField) field;
847 long resolvedFieldOffset = resolvedField.offset(); 856 long resolvedFieldOffset = resolvedField.offset();
848 // @formatter:off 857 // @formatter:off
849 if (ByteOrder.nativeOrder() == ByteOrder.BIG_ENDIAN && 858 if (ByteOrder.nativeOrder() == ByteOrder.BIG_ENDIAN &&