Skip to content

Commit 41c544c

Browse files
committed
[GR-63745] IGV: Use offsets from .bgv file to select appropriate text
PullRequest: graal/20549
2 parents 6288d21 + be5eb54 commit 41c544c

File tree

45 files changed

+352
-64
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+352
-64
lines changed

compiler/mx.compiler/suite.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,8 +65,8 @@
6565
"packedResource": True,
6666
},
6767
"IDEALGRAPHVISUALIZER_DIST" : {
68-
"urls" : ["https://lafo.ssw.uni-linz.ac.at/pub/idealgraphvisualizer/idealgraphvisualizer-1.20-ea624c6066a.zip"],
69-
"digest" : "sha512:263aefe418be987fc4e9a84cc301d0cc23858175ff0688791468ca31bae91e3fd51409a6167e1e6bd596e7ebe0fab1f26a025fcd6aac0b750fde62edaec33c0a",
68+
"urls" : ["https://lafo.ssw.uni-linz.ac.at/pub/idealgraphvisualizer/idealgraphvisualizer-1.21-6336c496583.zip"],
69+
"digest" : "sha512:978b5f2e7f807238dcb2bf4e5b7acdd88176c3742bdc0e472d96cbd5a5d72ff411a110098abbbbcd6ad55c6baa27ea9b530e78736085e1bee80d61f723e47c60",
7070
"packedResource": True,
7171
},
7272

compiler/src/jdk.graal.compiler.test/src/jdk/graal/compiler/graph/test/graphio/parsing/model/InputMethodTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ public void testGetSetBytecodes() {
6969
assertNull(m.getBytecodes().get(2).getInlined());
7070
assertNull(m.getBytecodes().get(6).getInlined());
7171

72-
m = new InputMethod(g, "name", "shortName", -1, LocationCache.createMethod(null, null, bytecode));
72+
m = new InputMethod(g, "name", "shortName", -1, LocationCache.createMethod("fakeMethod", "FakeClass", bytecode));
7373

7474
assertEquals(7, m.getBytecodes().size());
7575

compiler/src/jdk.graal.compiler/src/jdk/graal/compiler/graphio/parsing/BinaryReader.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -246,6 +246,8 @@ public abstract static class Member implements LengthToString {
246246
public final String name;
247247

248248
private Member(Klass holder, String name, int accessFlags) {
249+
assert holder != null : "GraphElements.methodDeclaringClass must not return null!";
250+
assert name != null;
249251
this.holder = holder;
250252
this.accessFlags = accessFlags;
251253
this.name = name;

compiler/src/jdk.graal.compiler/src/jdk/graal/compiler/graphio/parsing/LocationStackFrame.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ public String toString() {
4949
String sep = "";
5050
for (LocationStackFrame t = this; t != null; t = t.parent) {
5151
sb.append(sep);
52-
sb.append(methodHolderName(t)).append(".").append(t.method.name);
52+
sb.append(methodHolderName(t)).append(".").append(methodName(t));
5353
for (LocationStratum s : t.strata) {
5454
if (s.file != null) {
5555
sb.append("(").append(s.file).append(":").append(s.line).append(")");
@@ -63,6 +63,10 @@ public String toString() {
6363
return sb.toString();
6464
}
6565

66+
private static String methodName(LocationStackFrame t) {
67+
return t != null && t.method != null ? t.method.name : null;
68+
}
69+
6670
private static String methodHolderName(LocationStackFrame t) {
6771
if (t != null && t.method != null && t.method.holder != null) {
6872
return t.method.holder.name;

visualizer/IdealGraphVisualizer/Bytecodes/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<parent>
44
<groupId>org.graalvm.visualizer</groupId>
55
<artifactId>IdealGraphVisualizer-parent</artifactId>
6-
<version>1.21-SNAPSHOT</version>
6+
<version>1.22-SNAPSHOT</version>
77
</parent>
88
<artifactId>Bytecodes</artifactId>
99
<packaging>nbm</packaging>

visualizer/IdealGraphVisualizer/ControlFlow/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<parent>
44
<groupId>org.graalvm.visualizer</groupId>
55
<artifactId>IdealGraphVisualizer-parent</artifactId>
6-
<version>1.21-SNAPSHOT</version>
6+
<version>1.22-SNAPSHOT</version>
77
</parent>
88
<artifactId>ControlFlow</artifactId>
99
<packaging>nbm</packaging>

visualizer/IdealGraphVisualizer/Coordinator/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<parent>
44
<groupId>org.graalvm.visualizer</groupId>
55
<artifactId>IdealGraphVisualizer-parent</artifactId>
6-
<version>1.21-SNAPSHOT</version>
6+
<version>1.22-SNAPSHOT</version>
77
</parent>
88
<artifactId>Coordinator</artifactId>
99
<packaging>nbm</packaging>

visualizer/IdealGraphVisualizer/Data/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<parent>
44
<groupId>org.graalvm.visualizer</groupId>
55
<artifactId>IdealGraphVisualizer-parent</artifactId>
6-
<version>1.21-SNAPSHOT</version>
6+
<version>1.22-SNAPSHOT</version>
77
</parent>
88
<artifactId>Data</artifactId>
99
<packaging>nbm</packaging>

visualizer/IdealGraphVisualizer/Data/src/main/java/jdk/graal/compiler/graphio/parsing/BinaryReader.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -246,6 +246,8 @@ public abstract static class Member implements LengthToString {
246246
public final String name;
247247

248248
private Member(Klass holder, String name, int accessFlags) {
249+
assert holder != null : "GraphElements.methodDeclaringClass must not return null!";
250+
assert name != null;
249251
this.holder = holder;
250252
this.accessFlags = accessFlags;
251253
this.name = name;

visualizer/IdealGraphVisualizer/Data/src/main/java/jdk/graal/compiler/graphio/parsing/LocationStackFrame.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ public String toString() {
4949
String sep = "";
5050
for (LocationStackFrame t = this; t != null; t = t.parent) {
5151
sb.append(sep);
52-
sb.append(methodHolderName(t)).append(".").append(t.method.name);
52+
sb.append(methodHolderName(t)).append(".").append(methodName(t));
5353
for (LocationStratum s : t.strata) {
5454
if (s.file != null) {
5555
sb.append("(").append(s.file).append(":").append(s.line).append(")");
@@ -63,6 +63,10 @@ public String toString() {
6363
return sb.toString();
6464
}
6565

66+
private static String methodName(LocationStackFrame t) {
67+
return t != null && t.method != null ? t.method.name : null;
68+
}
69+
6670
private static String methodHolderName(LocationStackFrame t) {
6771
if (t != null && t.method != null && t.method.holder != null) {
6872
return t.method.holder.name;

visualizer/IdealGraphVisualizer/Data/src/test/java/org/graalvm/visualizer/data/serialization/lazy/BinaryReaderMockTest.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ public void testNodeEncodingInVersion50WithMethods() throws Exception {
114114
obj = b.group.getProperties().get("location");
115115
assertTrue("It is node: " + obj, obj instanceof LocationStackFrame);
116116
LocationStackFrame elem = (LocationStackFrame) obj;
117-
assertEquals("null.mockMethod(unknown:97) [bci:97]", elem.toString());
117+
assertEquals("org.graalvm.visualizer.data.serialization.lazy.BinaryReaderMockTest$MockMethod.mockMethod(unknown:97) [bci:97]", elem.toString());
118118
}
119119

120120
public void testNodeEncodingInVersion60WithMethods() throws Exception {
@@ -153,7 +153,7 @@ public void testNodeEncodingInVersion60WithMethods() throws Exception {
153153
obj = b.group.getProperties().get("location");
154154
assertTrue("It is node: " + obj, obj instanceof LocationStackFrame);
155155
LocationStackFrame elem = (LocationStackFrame) obj;
156-
assertEquals("null.mockMethod(unknown:97) [bci:97]", elem.toString());
156+
assertEquals("org.graalvm.visualizer.data.serialization.lazy.BinaryReaderMockTest$MockMethod.mockMethod(unknown:97) [bci:97]", elem.toString());
157157
}
158158

159159
public void testNodeEncodingInVersion60WithMethodsAndStrata() throws Exception {
@@ -192,7 +192,7 @@ public void testNodeEncodingInVersion60WithMethodsAndStrata() throws Exception {
192192
obj = b.group.getProperties().get("location");
193193
assertTrue("It is node: " + obj, obj instanceof LocationStackFrame);
194194
LocationStackFrame elem = (LocationStackFrame) obj;
195-
assertEquals("null.mockMethod(wellknown:3)(wellknown:3)(wellknown:3) [bci:3]", elem.toString());
195+
assertEquals("org.graalvm.visualizer.data.serialization.lazy.BinaryReaderMockTest$MockMethod.mockMethod(wellknown:3)(wellknown:3)(wellknown:3) [bci:3]", elem.toString());
196196
}
197197

198198
public void testMixingTwoOutputsInOneStream() throws Exception {
@@ -397,7 +397,7 @@ public String methodName(MockMethod method) {
397397

398398
@Override
399399
public Object methodDeclaringClass(MockMethod method) {
400-
return null;
400+
return method.getClass();
401401
}
402402

403403
@Override

visualizer/IdealGraphVisualizer/Difference/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<parent>
44
<groupId>org.graalvm.visualizer</groupId>
55
<artifactId>IdealGraphVisualizer-parent</artifactId>
6-
<version>1.21-SNAPSHOT</version>
6+
<version>1.22-SNAPSHOT</version>
77
</parent>
88
<artifactId>Difference</artifactId>
99
<packaging>nbm</packaging>

visualizer/IdealGraphVisualizer/Filter/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<parent>
44
<groupId>org.graalvm.visualizer</groupId>
55
<artifactId>IdealGraphVisualizer-parent</artifactId>
6-
<version>1.21-SNAPSHOT</version>
6+
<version>1.22-SNAPSHOT</version>
77
</parent>
88
<artifactId>Filter</artifactId>
99
<packaging>nbm</packaging>

visualizer/IdealGraphVisualizer/FilterProfiles/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<parent>
44
<groupId>org.graalvm.visualizer</groupId>
55
<artifactId>IdealGraphVisualizer-parent</artifactId>
6-
<version>1.21-SNAPSHOT</version>
6+
<version>1.22-SNAPSHOT</version>
77
</parent>
88
<artifactId>FilterProfiles</artifactId>
99
<packaging>nbm</packaging>

visualizer/IdealGraphVisualizer/FilterWindow/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<parent>
44
<groupId>org.graalvm.visualizer</groupId>
55
<artifactId>IdealGraphVisualizer-parent</artifactId>
6-
<version>1.21-SNAPSHOT</version>
6+
<version>1.22-SNAPSHOT</version>
77
</parent>
88
<artifactId>FilterWindow</artifactId>
99
<packaging>nbm</packaging>

visualizer/IdealGraphVisualizer/Graal/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<parent>
44
<groupId>org.graalvm.visualizer</groupId>
55
<artifactId>IdealGraphVisualizer-parent</artifactId>
6-
<version>1.21-SNAPSHOT</version>
6+
<version>1.22-SNAPSHOT</version>
77
</parent>
88
<artifactId>Graal</artifactId>
99
<packaging>nbm</packaging>

visualizer/IdealGraphVisualizer/Graph/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<parent>
44
<groupId>org.graalvm.visualizer</groupId>
55
<artifactId>IdealGraphVisualizer-parent</artifactId>
6-
<version>1.21-SNAPSHOT</version>
6+
<version>1.22-SNAPSHOT</version>
77
</parent>
88
<artifactId>Graph</artifactId>
99
<packaging>nbm</packaging>

visualizer/IdealGraphVisualizer/GraphSearch/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<parent>
44
<groupId>org.graalvm.visualizer</groupId>
55
<artifactId>IdealGraphVisualizer-parent</artifactId>
6-
<version>1.21-SNAPSHOT</version>
6+
<version>1.22-SNAPSHOT</version>
77
</parent>
88
<artifactId>GraphSearch</artifactId>
99
<packaging>nbm</packaging>

visualizer/IdealGraphVisualizer/HierarchicalLayout/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<parent>
44
<groupId>org.graalvm.visualizer</groupId>
55
<artifactId>IdealGraphVisualizer-parent</artifactId>
6-
<version>1.21-SNAPSHOT</version>
6+
<version>1.22-SNAPSHOT</version>
77
</parent>
88
<artifactId>HierarchicalLayout</artifactId>
99
<packaging>nbm</packaging>

visualizer/IdealGraphVisualizer/JSONExporter/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<parent>
44
<groupId>org.graalvm.visualizer</groupId>
55
<artifactId>IdealGraphVisualizer-parent</artifactId>
6-
<version>1.21-SNAPSHOT</version>
6+
<version>1.22-SNAPSHOT</version>
77
</parent>
88
<artifactId>JSONExporter</artifactId>
99
<packaging>nbm</packaging>

visualizer/IdealGraphVisualizer/JavaSources/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<parent>
44
<groupId>org.graalvm.visualizer</groupId>
55
<artifactId>IdealGraphVisualizer-parent</artifactId>
6-
<version>1.21-SNAPSHOT</version>
6+
<version>1.22-SNAPSHOT</version>
77
</parent>
88
<artifactId>JavaSources</artifactId>
99
<packaging>nbm</packaging>

visualizer/IdealGraphVisualizer/JavaSources/src/main/java/org/graalvm/visualizer/source/java/impl/JavaStackProcessor2.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -271,7 +271,7 @@ private void addResolvedLocation(String filename, FileObject source) {
271271
}
272272

273273
FileKey fk = ctx.file(filename, source);
274-
Location newLoc = new Location(spec, fk, lineno, lastloc, depth, -1);
274+
Location newLoc = new Location(spec, fk, lineno, -1, -1, lastloc, depth, -1);
275275
ctx.attachInfo(newLoc, javaInfo);
276276
javaInfo.withLocation(newLoc);
277277
result.add(newLoc);

visualizer/IdealGraphVisualizer/Layout/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<parent>
44
<groupId>org.graalvm.visualizer</groupId>
55
<artifactId>IdealGraphVisualizer-parent</artifactId>
6-
<version>1.21-SNAPSHOT</version>
6+
<version>1.22-SNAPSHOT</version>
77
</parent>
88
<artifactId>Layout</artifactId>
99
<packaging>nbm</packaging>

visualizer/IdealGraphVisualizer/NetworkConnection/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<parent>
44
<groupId>org.graalvm.visualizer</groupId>
55
<artifactId>IdealGraphVisualizer-parent</artifactId>
6-
<version>1.21-SNAPSHOT</version>
6+
<version>1.22-SNAPSHOT</version>
77
</parent>
88
<artifactId>NetworkConnection</artifactId>
99
<packaging>nbm</packaging>

visualizer/IdealGraphVisualizer/PolyglotRunner/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<parent>
44
<groupId>org.graalvm.visualizer</groupId>
55
<artifactId>IdealGraphVisualizer-parent</artifactId>
6-
<version>1.21-SNAPSHOT</version>
6+
<version>1.22-SNAPSHOT</version>
77
</parent>
88
<artifactId>PolyglotRunner</artifactId>
99
<packaging>nbm</packaging>

visualizer/IdealGraphVisualizer/SelectionCoordinator/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<parent>
44
<groupId>org.graalvm.visualizer</groupId>
55
<artifactId>IdealGraphVisualizer-parent</artifactId>
6-
<version>1.21-SNAPSHOT</version>
6+
<version>1.22-SNAPSHOT</version>
77
</parent>
88
<artifactId>SelectionCoordinator</artifactId>
99
<packaging>nbm</packaging>

visualizer/IdealGraphVisualizer/Settings/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<parent>
44
<groupId>org.graalvm.visualizer</groupId>
55
<artifactId>IdealGraphVisualizer-parent</artifactId>
6-
<version>1.21-SNAPSHOT</version>
6+
<version>1.22-SNAPSHOT</version>
77
</parent>
88
<artifactId>Settings</artifactId>
99
<packaging>nbm</packaging>

visualizer/IdealGraphVisualizer/SettingsUI/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<parent>
44
<groupId>org.graalvm.visualizer</groupId>
55
<artifactId>IdealGraphVisualizer-parent</artifactId>
6-
<version>1.21-SNAPSHOT</version>
6+
<version>1.22-SNAPSHOT</version>
77
</parent>
88
<artifactId>SettingsUI</artifactId>
99
<packaging>nbm</packaging>

visualizer/IdealGraphVisualizer/Shell/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<parent>
44
<groupId>org.graalvm.visualizer</groupId>
55
<artifactId>IdealGraphVisualizer-parent</artifactId>
6-
<version>1.21-SNAPSHOT</version>
6+
<version>1.22-SNAPSHOT</version>
77
</parent>
88
<artifactId>Shell</artifactId>
99
<packaging>nbm</packaging>

visualizer/IdealGraphVisualizer/SourceRepository/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<parent>
44
<groupId>org.graalvm.visualizer</groupId>
55
<artifactId>IdealGraphVisualizer-parent</artifactId>
6-
<version>1.21-SNAPSHOT</version>
6+
<version>1.22-SNAPSHOT</version>
77
</parent>
88
<artifactId>SourceRepository</artifactId>
99
<packaging>nbm</packaging>

visualizer/IdealGraphVisualizer/SourceRepository/src/main/java/org/graalvm/visualizer/source/Location.java

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,9 @@ public final class Location {
4848
*/
4949
private final int originLine;
5050

51+
private final int startOffset;
52+
private final int endOffset;
53+
5154
/**
5255
* Additional data/services, like OpenCookie, Node to present the data etc.
5356
*/
@@ -62,10 +65,12 @@ public final class Location {
6265

6366
private short frameFrom = -1, frameTo = -1;
6467

65-
public Location(String originSpec, FileKey originFile, int originLine, Location nested, int frame, int frameTo) {
68+
public Location(String originSpec, FileKey originFile, int originLine, int startOffset, int endOffset, Location nested, int frame, int frameTo) {
6669
this.file = originFile;
6770
this.originSpec = originSpec;
6871
this.originLine = originLine;
72+
this.startOffset = startOffset;
73+
this.endOffset = endOffset;
6974
this.frameFrom = (short) frame;
7075
this.frameTo = (short) (frameTo == -1 ? frame : frameTo);
7176
}
@@ -103,6 +108,20 @@ public int getLine() {
103108
return originLine;
104109
}
105110

111+
/** A pair of offsets.
112+
*
113+
* @return either {@code null} when there are no offsets or an {code @int} array
114+
* of size two. 0th element representing the start and 1st the end offset
115+
* in the document.
116+
*/
117+
public int[] getOffsetsOrNull() {
118+
if (startOffset >= 0 && endOffset > startOffset) {
119+
return new int[] { startOffset, endOffset };
120+
} else {
121+
return null;
122+
}
123+
}
124+
106125
Lookup getLookup() {
107126
return lookup;
108127
}
@@ -119,6 +138,8 @@ public int hashCode() {
119138
hash = 89 * hash + this.originLine;
120139
hash = 89 * hash + Objects.hashCode(this.file);
121140
hash = 89 * hash + Objects.hashCode(this.parent);
141+
hash = 37 * hash + startOffset;
142+
hash = 37 * hash + endOffset;
122143
cachedHash = hash == -1 ? 7 : hash;
123144
return cachedHash;
124145
}
@@ -138,6 +159,12 @@ public boolean equals(Object obj) {
138159
if (this.originLine != other.originLine) {
139160
return false;
140161
}
162+
if (this.startOffset != other.startOffset) {
163+
return false;
164+
}
165+
if (this.endOffset != other.endOffset) {
166+
return false;
167+
}
141168
if (this.parent != other.parent) {
142169
return false;
143170
}

visualizer/IdealGraphVisualizer/SourceRepository/src/main/java/org/graalvm/visualizer/source/SourceLocationUtils.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,9 +42,9 @@ public final class SourceLocationUtils {
4242
* @param line the line number
4343
* @return location object
4444
*/
45-
public static Location createLocation(FileObject f, int line) {
45+
private static Location createLocation(FileObject f, int line) {
4646
String spec = f.getPath() + ":" + line;
47-
return new Location(spec, FileKey.fromFile(f), line, null, -1, -1);
47+
return new Location(spec, FileKey.fromFile(f), line, -1, -1, null, -1, -1);
4848
}
4949

5050
public static Collection<Location> atLine(List<Location> searchIn, int line) {

0 commit comments

Comments
 (0)