Skip to content

Commit 0b85d0c

Browse files
committed
Remove FileEntry from Range, use the one from the corresponding MethodEntry
1 parent eb07a59 commit 0b85d0c

File tree

3 files changed

+14
-32
lines changed

3 files changed

+14
-32
lines changed

substratevm/src/com.oracle.objectfile/src/com/oracle/objectfile/debugentry/ClassEntry.java

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -157,8 +157,9 @@ public void indexPrimary(Range primary, List<DebugFrameSizeChange> frameSizeInfo
157157
assert includesDeoptTarget == false;
158158
}
159159
FileEntry primaryFileEntry = primary.getFileEntry();
160-
assert primaryFileEntry != null;
161-
indexLocalFileEntry(primaryFileEntry);
160+
if (primaryFileEntry != null) {
161+
indexLocalFileEntry(primaryFileEntry);
162+
}
162163
}
163164
}
164165

@@ -344,15 +345,6 @@ public ClassEntry getSuperClass() {
344345
return superClass;
345346
}
346347

347-
public Range makePrimaryRange(StringTable stringTable, MethodEntry method, int lo, int hi, int primaryLine) {
348-
FileEntry fileEntryToUse = method.fileEntry;
349-
if (fileEntryToUse == null) {
350-
/* Last chance is the class's file entry. */
351-
fileEntryToUse = this.fileEntry;
352-
}
353-
return new Range(stringTable, method, fileEntryToUse, lo, hi, primaryLine);
354-
}
355-
356348
public MethodEntry getMethodEntry(DebugMethodInfo debugMethodInfo, DebugInfoBase debugInfoBase, DebugContext debugContext) {
357349
assert listIsSorted(methods);
358350
String methodName = debugInfoBase.uniqueDebugString(debugMethodInfo.name());

substratevm/src/com.oracle.objectfile/src/com/oracle/objectfile/debugentry/DebugInfoBase.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -247,7 +247,7 @@ public void installDebugInfo(DebugInfoProvider debugInfoProvider) {
247247
/* Search for a method defining this primary range. */
248248
ClassEntry classEntry = ensureClassEntry(className);
249249
MethodEntry methodEntry = classEntry.getMethodEntry(debugCodeInfo, this, debugContext);
250-
Range primaryRange = classEntry.makePrimaryRange(stringTable, methodEntry, lo, hi, primaryLine);
250+
Range primaryRange = new Range(stringTable, methodEntry, lo, hi, primaryLine);
251251
debugContext.log(DebugContext.INFO_LEVEL, "PrimaryRange %s.%s %s %s:%d [0x%x, 0x%x]", className, methodName, filePath, fileName, primaryLine, lo, hi);
252252
classEntry.indexPrimary(primaryRange, debugCodeInfo.getFrameSizeChanges(), debugCodeInfo.getFrameSize());
253253
debugCodeInfo.lineInfoProvider().forEach(debugLineInfo -> {

substratevm/src/com.oracle.objectfile/src/com/oracle/objectfile/debugentry/Range.java

Lines changed: 10 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@
3434

3535
public class Range {
3636
private static final String CLASS_DELIMITER = ".";
37-
private final FileEntry fileEntry;
3837
private final MethodEntry methodEntry;
3938
private final String fullMethodNameWithParams;
4039
private final int lo;
@@ -48,28 +47,19 @@ public class Range {
4847
/*
4948
* Create a primary range.
5049
*/
51-
public Range(StringTable stringTable, MethodEntry methodEntry, FileEntry fileEntry, int lo, int hi, int line) {
52-
this(stringTable, methodEntry, fileEntry, lo, hi, line, null);
53-
}
54-
55-
/*
56-
* Create a secondary range.
57-
*/
58-
public Range(StringTable stringTable, MethodEntry methodEntry, int lo, int hi, int line, Range primary) {
59-
this(stringTable, methodEntry, methodEntry.fileEntry, lo, hi, line, primary);
50+
public Range(StringTable stringTable, MethodEntry methodEntry, int lo, int hi, int line) {
51+
this(stringTable, methodEntry, lo, hi, line, null);
6052
}
6153

6254
/*
6355
* Create a primary or secondary range.
6456
*/
65-
private Range(StringTable stringTable, MethodEntry methodEntry, FileEntry fileEntry, int lo, int hi, int line,
66-
Range primary) {
67-
this.fileEntry = fileEntry;
68-
if (fileEntry != null) {
69-
stringTable.uniqueDebugString(fileEntry.getFileName());
70-
stringTable.uniqueDebugString(fileEntry.getPathName());
71-
}
57+
public Range(StringTable stringTable, MethodEntry methodEntry, int lo, int hi, int line, Range primary) {
7258
assert methodEntry != null;
59+
if (methodEntry.fileEntry != null) {
60+
stringTable.uniqueDebugString(methodEntry.fileEntry.getFileName());
61+
stringTable.uniqueDebugString(methodEntry.fileEntry.getPathName());
62+
}
7363
this.methodEntry = methodEntry;
7464
this.fullMethodNameWithParams = stringTable.uniqueString(constructClassAndMethodNameWithParams());
7565
this.lo = lo;
@@ -158,7 +148,7 @@ private String constructClassAndMethodNameWithParams() {
158148
}
159149

160150
public FileEntry getFileEntry() {
161-
return fileEntry;
151+
return methodEntry.fileEntry;
162152
}
163153

164154
public int getModifiers() {
@@ -167,11 +157,11 @@ public int getModifiers() {
167157

168158
@Override
169159
public String toString() {
170-
return String.format("Range(lo=0x%05x hi=0x%05x %s %s:%d)", lo, hi, constructClassAndMethodNameWithParams(), fileEntry.getFullName(), line);
160+
return String.format("Range(lo=0x%05x hi=0x%05x %s %s:%d)", lo, hi, constructClassAndMethodNameWithParams(), methodEntry.fileEntry.getFullName(), line);
171161
}
172162

173163
public String getFileName() {
174-
return fileEntry.getFileName();
164+
return methodEntry.fileEntry.getFileName();
175165
}
176166

177167
public MethodEntry getMethodEntry() {

0 commit comments

Comments
 (0)