122122import jdk .vm .ci .meta .Signature ;
123123import jdk .vm .ci .meta .Value ;
124124import org .graalvm .nativeimage .c .struct .CPointerTo ;
125- import org .graalvm .word .PointerBase ;
126125import org .graalvm .word .WordBase ;
127126
128127/**
@@ -145,7 +144,6 @@ class NativeImageDebugInfoProvider implements DebugInfoProvider {
145144 private final Set <HostedMethod > allOverrides ;
146145 HostedType hubType ;
147146 private HostedType wordBaseType ;
148- private HostedType pointerBaseType ;
149147 HashMap <JavaKind , HostedType > javaKindToHostedType ;
150148
151149 NativeImageDebugInfoProvider (DebugContext debugContext , NativeImageCodeCache codeCache , NativeImageHeap heap , NativeLibraries nativeLibs , HostedMetaAccess metaAccess ) {
@@ -180,7 +178,6 @@ class NativeImageDebugInfoProvider implements DebugInfoProvider {
180178 .collect (Collectors .toSet ());
181179 hubType = metaAccess .lookupJavaType (Class .class );
182180 wordBaseType = metaAccess .lookupJavaType (WordBase .class );
183- pointerBaseType = metaAccess .lookupJavaType (PointerBase .class );
184181 javaKindToHostedType = initJavaKindToHostedTypes (metaAccess );
185182 }
186183
@@ -872,12 +869,13 @@ public Stream<DebugFieldInfo> fieldInfoProvider() {
872869 return orderedFieldsStream (elementInfo ).map (this ::createForeignDebugFieldInfo );
873870 }
874871
872+ @ Override
875873 public int size () {
876874 return elementSize (elementInfo );
877875 }
878876
879877 DebugFieldInfo createForeignDebugFieldInfo (StructFieldInfo structFieldInfo ) {
880- return new NativeImageForeignDebugFieldInfo (hostedType , elementInfo , structFieldInfo );
878+ return new NativeImageForeignDebugFieldInfo (hostedType , structFieldInfo );
881879 }
882880
883881 @ Override
@@ -950,14 +948,10 @@ public ResolvedJavaType pointerTo() {
950948 }
951949
952950 private class NativeImageForeignDebugFieldInfo extends NativeImageDebugFileInfo implements DebugInfoProvider .DebugFieldInfo {
953- HostedType hostedType ;
954- ElementInfo elementInfo ;
955951 StructFieldInfo structFieldInfo ;
956952
957- NativeImageForeignDebugFieldInfo (HostedType hostedType , ElementInfo elementInfo , StructFieldInfo structFieldInfo ) {
953+ NativeImageForeignDebugFieldInfo (HostedType hostedType , StructFieldInfo structFieldInfo ) {
958954 super (hostedType );
959- this .hostedType = hostedType ;
960- this .elementInfo = elementInfo ;
961955 this .structFieldInfo = structFieldInfo ;
962956 }
963957
@@ -980,7 +974,7 @@ public String name() {
980974 public ResolvedJavaType valueType () {
981975 // we need to ensure the hosted type identified for the field value gets translated to
982976 // an original in order to be consistent with id types for substitutions
983- return getOriginal (getFieldType (hostedType , structFieldInfo ));
977+ return getOriginal (getFieldType (structFieldInfo ));
984978 }
985979
986980 @ Override
@@ -1194,7 +1188,7 @@ private void logStructInfo(HostedType hostedType, StructInfo structInfo) {
11941188 int nextSize = elementSize (field );
11951189 assert nextOffset > currentOffset : "raw struct has two fields at same offset " + currentOffset ;
11961190 String fieldName = field .getName ();
1197- ResolvedJavaType type = getFieldType (hostedType , field );
1191+ ResolvedJavaType type = getFieldType (field );
11981192 debugContext .log (" %s %s;" , type .toJavaName (), fieldName );
11991193 totalSize += nextSize ;
12001194 }
@@ -1231,7 +1225,7 @@ private void logRawStructureInfo(HostedType hostedType, RawStructureInfo rawStru
12311225 int nextSize = elementSize (field );
12321226 assert nextOffset > currentOffset : "raw struct has two fields at same offset " + currentOffset ;
12331227 String fieldName = field .getName ();
1234- ResolvedJavaType type = getFieldType (hostedType , field );
1228+ ResolvedJavaType type = getFieldType (field );
12351229 debugContext .log (" %s %s;" , type .toJavaName (), fieldName );
12361230 totalSize += nextSize ;
12371231 }
@@ -1241,7 +1235,7 @@ private void logRawStructureInfo(HostedType hostedType, RawStructureInfo rawStru
12411235 debugContext .log (" } %s;" , rawStructureInfo .getName ());
12421236 }
12431237
1244- private HostedType getFieldType (HostedType hostedType , StructFieldInfo field ) {
1238+ private HostedType getFieldType (StructFieldInfo field ) {
12451239 // we should always some sort of accessor, preferably a GETTER or a SETTER
12461240 // but possibly an ADDRESS accessor or even just an OFFSET accessor
12471241 for (ElementInfo elt : field .getChildren ()) {
@@ -1284,7 +1278,7 @@ int elementSize(ElementInfo elementInfo) {
12841278 return size ;
12851279 }
12861280
1287- String elementName (ElementInfo elementInfo ) {
1281+ private static String elementName (ElementInfo elementInfo ) {
12881282 if (elementInfo == null ) {
12891283 return "" ;
12901284 } else {
@@ -1329,13 +1323,13 @@ private void dumpElementInfo(ElementInfo elementInfo) {
13291323 }
13301324 }
13311325
1332- private String formatElementInfo (ElementInfo elementInfo ) {
1326+ private static String formatElementInfo (ElementInfo elementInfo ) {
13331327 StringBuilder stringBuilder = new StringBuilder ();
13341328 formatElementInfo (elementInfo , stringBuilder , 0 );
13351329 return stringBuilder .toString ();
13361330 }
13371331
1338- private void formatElementInfo (ElementInfo elementInfo , StringBuilder stringBuilder , int indent ) {
1332+ private static void formatElementInfo (ElementInfo elementInfo , StringBuilder stringBuilder , int indent ) {
13391333 indentElementInfo (stringBuilder , indent );
13401334 formatSingleElement (elementInfo , stringBuilder );
13411335 List <ElementInfo > children = elementInfo .getChildren ();
@@ -1351,7 +1345,7 @@ private void formatElementInfo(ElementInfo elementInfo, StringBuilder stringBuil
13511345 }
13521346 }
13531347
1354- private void formatSingleElement (ElementInfo elementInfo , StringBuilder stringBuilder ) {
1348+ private static void formatSingleElement (ElementInfo elementInfo , StringBuilder stringBuilder ) {
13551349 stringBuilder .append (ClassUtil .getUnqualifiedName (elementInfo .getClass ()));
13561350 stringBuilder .append (" : " );
13571351 stringBuilder .append (elementName (elementInfo ));
@@ -1361,11 +1355,11 @@ private void formatSingleElement(ElementInfo elementInfo, StringBuilder stringBu
13611355 }
13621356 }
13631357
1364- private <T > void formatPropertyInfo (PropertyInfo <T > propertyInfo , StringBuilder stringBuilder ) {
1358+ private static <T > void formatPropertyInfo (PropertyInfo <T > propertyInfo , StringBuilder stringBuilder ) {
13651359 stringBuilder .append (propertyInfo .getProperty ());
13661360 }
13671361
1368- private void indentElementInfo (StringBuilder stringBuilder , int indent ) {
1362+ private static void indentElementInfo (StringBuilder stringBuilder , int indent ) {
13691363 for (int i = 0 ; i <= indent ; i ++) {
13701364 stringBuilder .append (" " );
13711365 }
@@ -1606,45 +1600,30 @@ private List<DebugLocalInfo> createParamInfo(ResolvedJavaMethod method, int line
16061600 */
16071601 private boolean isForeignWordType (JavaType type , ResolvedJavaType accessingType ) {
16081602 assert accessingType instanceof HostedType : "must be!" ;
1609- ResolvedJavaType resolvedJavaType = type .resolve (accessingType );
1603+ HostedType resolvedJavaType = ( HostedType ) type .resolve (accessingType );
16101604 return isForeignWordType (resolvedJavaType );
16111605 }
16121606
16131607 /**
16141608 * Identify a hosted type which is being used to model a foreign memory word or pointer type.
16151609 *
1616- * @param resolvedJavaType the type to be tested which must be an instance of HostedType
1610+ * @param hostedType the type to be tested
16171611 * @return true if the type models a foreign memory word or pointer type
16181612 */
1619- private boolean isForeignWordType (ResolvedJavaType resolvedJavaType ) {
1620- assert resolvedJavaType instanceof HostedType : "must be!" ;
1613+ private boolean isForeignWordType (HostedType hostedType ) {
16211614 // unwrap because native libs operates on the analysis type universe
1622- return nativeLibs .isWordBase (((HostedType ) resolvedJavaType ).getWrapped ());
1623- }
1624-
1625- /**
1626- * Identify a Java type which is being used to model a foreign pointer type.
1627- *
1628- * @param type the type to be tested
1629- * @param accessingType another type relative to which the first type may need to be resolved
1630- * @return true if the type models a foreign pointer type
1631- */
1632- private boolean isForeignPointerType (JavaType type , ResolvedJavaType accessingType ) {
1633- assert accessingType instanceof HostedType : "must be!" ;
1634- ResolvedJavaType resolvedJavaType = type .resolve (accessingType );
1635- return isForeignPointerType (resolvedJavaType );
1615+ return nativeLibs .isWordBase (hostedType .getWrapped ());
16361616 }
16371617
16381618 /**
16391619 * Identify a hosted type which is being used to model a foreign pointer type.
16401620 *
1641- * @param resolvedJavaType the type to be tested which must be an instance of HostedType
1621+ * @param hostedType the type to be tested
16421622 * @return true if the type models a foreign pointer type
16431623 */
1644- private boolean isForeignPointerType (ResolvedJavaType resolvedJavaType ) {
1645- assert resolvedJavaType instanceof HostedType : "must be!" ;
1624+ private boolean isForeignPointerType (HostedType hostedType ) {
16461625 // unwrap because native libs operates on the analysis type universe
1647- return nativeLibs .isPointerBase ((( HostedType ) resolvedJavaType ) .getWrapped ());
1626+ return nativeLibs .isPointerBase (hostedType .getWrapped ());
16481627 }
16491628
16501629 private static boolean isIntegralKindPromotion (JavaKind promoted , JavaKind original ) {
0 commit comments