Skip to content

Commit 7b4e15d

Browse files
committed
Fixed sorting of guest language nodes
1 parent 8c364e0 commit 7b4e15d

File tree

11 files changed

+106
-56
lines changed

11 files changed

+106
-56
lines changed

visualvm/heapviewer.truffle/src/org/graalvm/visualvm/heapviewer/truffle/TruffleObjectMergedFields.java

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -195,12 +195,17 @@ String getFieldName() {
195195
return fieldName;
196196
}
197197

198-
199198
int getValuesCount() {
200199
return valuesCount;
201200
}
202201

203202

203+
private String getName() {
204+
return valuesCount == -1 ? fieldName : fieldName + " " + // NOI18N
205+
Bundle.TruffleObjectPropertyProvider_ValuesCountHint(valuesCount);
206+
}
207+
208+
204209
protected HeapViewerNode[] lazilyComputeChildren(Heap heap, String viewID, HeapViewerNodeFilter viewFilter, List<DataType> dataTypes, List<SortOrder> sortOrders, Progress progress) throws InterruptedException {
205210
if (fieldType == 0) {
206211
final InstanceCounter values = new InstanceCounter(objectsCount());
@@ -321,9 +326,15 @@ protected String getNodesContainerString(String firstNodeIdx, String lastNodeIdx
321326
}
322327

323328

329+
protected Object getValue(DataType type, Heap heap) {
330+
if (type == DataType.NAME) return getName();
331+
332+
return super.getValue(type, heap);
333+
}
334+
335+
324336
public String toString() {
325-
if (valuesCount == -1) return fieldName;
326-
else return fieldName + " " + Bundle.TruffleObjectPropertyProvider_ValuesCountHint(valuesCount); // NOI18N
337+
return getName();
327338
}
328339

329340
}
@@ -428,7 +439,17 @@ public int getValuesCount() {
428439
abstract String fieldName();
429440

430441

442+
public String getName() {
443+
return getType() + " " + getValue();
444+
}
445+
446+
public String toString() {
447+
return getName();
448+
}
449+
450+
431451
protected Object getValue(DataType type, Heap heap) {
452+
if (type == DataType.NAME) return getName();
432453
if (type == DataType.COUNT) return getValuesCount();
433454

434455
return super.getValue(type, heap);

visualvm/heapviewer.truffle/src/org/graalvm/visualvm/heapviewer/truffle/TruffleObjectMergedReferences.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@
3131
import java.util.List;
3232
import java.util.Map;
3333
import java.util.Set;
34-
import javax.accessibility.AccessibleContext;
3534
import javax.swing.SortOrder;
3635
import org.graalvm.visualvm.heapviewer.HeapContext;
3736
import org.graalvm.visualvm.heapviewer.java.InstanceNode;

visualvm/heapviewer.truffle/src/org/graalvm/visualvm/heapviewer/truffle/lang/javascript/JavaScriptNodes.java

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,7 @@ static String getLogicalValue(JavaScriptObject object, String type, Heap heap) {
168168
}
169169

170170

171-
private static String computeName(TruffleObjectNode.InstanceBased<JavaScriptObject> node, Heap heap) {
171+
private static String computeObjectName(TruffleObjectNode.InstanceBased<JavaScriptObject> node, Heap heap) {
172172
return node.getTruffleObject().computeDisplayType(heap) + "#" + node.getInstance().getInstanceNumber(); // NOI18N
173173
}
174174

@@ -188,8 +188,8 @@ static class JavaScriptObjectNode extends DynamicObjectNode<JavaScriptObject> im
188188

189189

190190
@Override
191-
protected String computeName(Heap heap) {
192-
return JavaScriptNodes.computeName(this, heap);
191+
protected String computeObjectName(Heap heap) {
192+
return JavaScriptNodes.computeObjectName(this, heap);
193193
}
194194

195195
protected String computeLogicalValue(JavaScriptObject object, String type, Heap heap) {
@@ -243,8 +243,8 @@ static class JavaScriptObjectFieldNode extends DynamicObjectFieldNode<JavaScript
243243
}
244244

245245
@Override
246-
protected String computeName(Heap heap) {
247-
return JavaScriptNodes.computeName(this, heap);
246+
protected String computeObjectName(Heap heap) {
247+
return JavaScriptNodes.computeObjectName(this, heap);
248248
}
249249

250250
protected String computeLogicalValue(JavaScriptObject object, String type, Heap heap) {
@@ -266,8 +266,8 @@ static class JavaScriptObjectArrayItemNode extends DynamicObjectArrayItemNode<Ja
266266
}
267267

268268
@Override
269-
protected String computeName(Heap heap) {
270-
return JavaScriptNodes.computeName(this, heap);
269+
protected String computeObjectName(Heap heap) {
270+
return JavaScriptNodes.computeObjectName(this, heap);
271271
}
272272

273273
protected String computeLogicalValue(JavaScriptObject object, String type, Heap heap) {
@@ -290,8 +290,8 @@ static class JavaScriptObjectReferenceNode extends DynamicObjectReferenceNode<Ja
290290
}
291291

292292
@Override
293-
protected String computeName(Heap heap) {
294-
return JavaScriptNodes.computeName(this, heap);
293+
protected String computeObjectName(Heap heap) {
294+
return JavaScriptNodes.computeObjectName(this, heap);
295295
}
296296

297297
protected String computeLogicalValue(JavaScriptObject object, String type, Heap heap) {
@@ -313,8 +313,8 @@ static class JavaScriptLocalObjectNode extends LocalDynamicObjectNode<JavaScript
313313
}
314314

315315
@Override
316-
protected String computeName(Heap heap) {
317-
return JavaScriptNodes.computeName(this, heap);
316+
protected String computeObjectName(Heap heap) {
317+
return JavaScriptNodes.computeObjectName(this, heap);
318318
}
319319

320320
protected String computeLogicalValue(JavaScriptObject object, String type, Heap heap) {

visualvm/heapviewer.truffle/src/org/graalvm/visualvm/heapviewer/truffle/lang/python/PythonNodes.java

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ static String getLogicalValue(PythonObject object, String type, Heap heap) {
9393
}
9494

9595

96-
private static String computeName(TruffleObjectNode.InstanceBased<PythonObject> node, Heap heap) {
96+
private static String computeObjectName(TruffleObjectNode.InstanceBased<PythonObject> node, Heap heap) {
9797
String typeString = node.getTypeName();
9898
return typeString.substring(typeString.lastIndexOf('.') + 1) + "#" + node.getInstance().getInstanceNumber(); // NOI18N
9999
}
@@ -118,8 +118,8 @@ public PythonObjectNode(PythonObject robject, String type) {
118118

119119

120120
@Override
121-
protected String computeName(Heap heap) {
122-
return PythonNodes.computeName(this, heap);
121+
protected String computeObjectName(Heap heap) {
122+
return PythonNodes.computeObjectName(this, heap);
123123
}
124124

125125
protected String computeLogicalValue(PythonObject object, String type, Heap heap) {
@@ -147,8 +147,8 @@ static class PythonLocalObjectNode extends TruffleLocalObjectNode.InstanceBased<
147147
}
148148

149149
@Override
150-
protected String computeName(Heap heap) {
151-
return PythonNodes.computeName(this, heap);
150+
protected String computeObjectName(Heap heap) {
151+
return PythonNodes.computeObjectName(this, heap);
152152
}
153153

154154
protected String computeLogicalValue(PythonObject object, String type, Heap heap) {
@@ -196,8 +196,8 @@ static class PythonObjectFieldNode extends TruffleObjectFieldNode.InstanceBased<
196196
}
197197

198198
@Override
199-
protected String computeName(Heap heap) {
200-
return PythonNodes.computeName(this, heap);
199+
protected String computeObjectName(Heap heap) {
200+
return PythonNodes.computeObjectName(this, heap); // NOI18N
201201
}
202202

203203
protected String computeLogicalValue(PythonObject object, String type, Heap heap) {
@@ -219,8 +219,8 @@ static class PythonObjectReferenceNode extends TruffleObjectReferenceNode.Instan
219219
}
220220

221221
@Override
222-
protected String computeName(Heap heap) {
223-
return PythonNodes.computeName(this, heap);
222+
protected String computeObjectName(Heap heap) {
223+
return PythonNodes.computeObjectName(this, heap);
224224
}
225225

226226
protected String computeLogicalValue(PythonObject object, String type, Heap heap) {
@@ -242,8 +242,8 @@ static class PythonObjectAttributeReferenceNode extends TruffleObjectReferenceNo
242242
}
243243

244244
@Override
245-
protected String computeName(Heap heap) {
246-
return PythonNodes.computeName(this, heap);
245+
protected String computeObjectName(Heap heap) {
246+
return PythonNodes.computeObjectName(this, heap);
247247
}
248248

249249
protected String computeLogicalValue(PythonObject object, String type, Heap heap) {

visualvm/heapviewer.truffle/src/org/graalvm/visualvm/heapviewer/truffle/lang/r/RNodes.java

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ static String getLogicalValue(RObject object, String type, Heap heap) {
7171
}
7272

7373

74-
private static String computeName(TruffleObjectNode.InstanceBased<RObject> node, Heap heap) {
74+
private static String computeObjectName(TruffleObjectNode.InstanceBased<RObject> node, Heap heap) {
7575
if ("com.oracle.truffle.r.runtime.data.RLogical".equals(node.getInstance().getJavaClass().getName())) { // NOI18N
7676
String valueString = node.getLogicalValue(heap);
7777
return "logical#" + valueString.substring(1, valueString.length() - 1); // NOI18N
@@ -101,8 +101,8 @@ public RObjectNode(RObject robject, String type) {
101101

102102

103103
@Override
104-
protected String computeName(Heap heap) {
105-
return RNodes.computeName(this, heap);
104+
protected String computeObjectName(Heap heap) {
105+
return RNodes.computeObjectName(this, heap);
106106
}
107107

108108
protected String computeLogicalValue(RObject object, String type, Heap heap) {
@@ -131,8 +131,8 @@ static class RLocalObjectNode extends TruffleLocalObjectNode.InstanceBased<RObje
131131

132132

133133
@Override
134-
protected String computeName(Heap heap) {
135-
return RNodes.computeName(this, heap);
134+
protected String computeObjectName(Heap heap) {
135+
return RNodes.computeObjectName(this, heap);
136136
}
137137

138138
protected String computeLogicalValue(RObject object, String type, Heap heap) {
@@ -180,8 +180,8 @@ static class RObjectFieldNode extends TruffleObjectFieldNode.InstanceBased<RObje
180180
}
181181

182182
@Override
183-
protected String computeName(Heap heap) {
184-
return RNodes.computeName(this, heap);
183+
protected String computeObjectName(Heap heap) {
184+
return RNodes.computeObjectName(this, heap); // NOI18N
185185
}
186186

187187
protected String computeLogicalValue(RObject object, String type, Heap heap) {
@@ -203,8 +203,8 @@ static class RObjectReferenceNode extends TruffleObjectReferenceNode.InstanceBas
203203
}
204204

205205
@Override
206-
protected String computeName(Heap heap) {
207-
return RNodes.computeName(this, heap);
206+
protected String computeObjectName(Heap heap) {
207+
return RNodes.computeObjectName(this, heap);
208208
}
209209

210210
protected String computeLogicalValue(RObject object, String type, Heap heap) {
@@ -226,8 +226,8 @@ static class RObjectAttributeReferenceNode extends TruffleObjectReferenceNode.In
226226
}
227227

228228
@Override
229-
protected String computeName(Heap heap) {
230-
return RNodes.computeName(this, heap);
229+
protected String computeObjectName(Heap heap) {
230+
return RNodes.computeObjectName(this, heap);
231231
}
232232

233233
protected String computeLogicalValue(RObject object, String type, Heap heap) {

visualvm/heapviewer.truffle/src/org/graalvm/visualvm/heapviewer/truffle/lang/ruby/RubyNodes.java

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -188,8 +188,8 @@ static class RubyObjectNode extends DynamicObjectNode<RubyObject> implements Rub
188188

189189
// TODO: uncomment once types caching is available for RubyHeapFragment
190190
// @Override
191-
// protected String computeName(Heap heap) {
192-
// return RubyNodes.computeName(this, heap);
191+
// protected String computeObjectName(Heap heap) {
192+
// return RubyNodes.computeObjectName(this, heap);
193193
// }
194194

195195
protected String computeLogicalValue(RubyObject object, String type, Heap heap) {
@@ -219,8 +219,8 @@ static class RubyLocalObjectNode extends LocalDynamicObjectNode<RubyObject> impl
219219

220220
// TODO: uncomment once types caching is available for RubyHeapFragment
221221
// @Override
222-
// protected String computeName(Heap heap) {
223-
// return RubyNodes.computeName(this, heap);
222+
// protected String computeObjectName(Heap heap) {
223+
// return RubyNodes.computeObjectName(this, heap);
224224
// }
225225

226226
protected String computeLogicalValue(RubyObject object, String type, Heap heap) {
@@ -270,8 +270,8 @@ static class RubyObjectFieldNode extends DynamicObjectFieldNode<RubyObject> impl
270270

271271
// TODO: uncomment once types caching is available for RubyHeapFragment
272272
// @Override
273-
// protected String computeName(Heap heap) {
274-
// return RubyNodes.computeName(this, heap);
273+
// protected String computeObjectName(Heap heap) {
274+
// return RubyNodes.computeObjectName(this, heap);
275275
// }
276276

277277
protected String computeLogicalValue(RubyObject object, String type, Heap heap) {
@@ -295,8 +295,8 @@ static class RubyObjectArrayItemNode extends DynamicObjectArrayItemNode<RubyObje
295295

296296
// TODO: uncomment once types caching is available for RubyHeapFragment
297297
// @Override
298-
// protected String computeName(Heap heap) {
299-
// return RubyNodes.computeName(this, heap);
298+
// protected String computeObjectName(Heap heap) {
299+
// return RubyNodes.computeObjectName(this, heap);
300300
// }
301301

302302
protected String computeLogicalValue(RubyObject object, String type, Heap heap) {
@@ -320,8 +320,8 @@ static class RubyObjectReferenceNode extends DynamicObjectReferenceNode<RubyObje
320320

321321
// TODO: uncomment once types caching is available for RubyHeapFragment
322322
// @Override
323-
// protected String computeName(Heap heap) {
324-
// return RubyNodes.computeName(this, heap);
323+
// protected String computeObjectName(Heap heap) {
324+
// return RubyNodes.computeObjectName(this, heap);
325325
// }
326326

327327
protected String computeLogicalValue(RubyObject object, String type, Heap heap) {

visualvm/heapviewer.truffle/src/org/graalvm/visualvm/heapviewer/truffle/nodes/TruffleLocalObjectNode.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,12 @@ public class InstanceBased<O extends TruffleObject.InstanceBased> extends Truffl
4545
public InstanceBased(O object, String type) {
4646
super(object, type);
4747
}
48+
49+
50+
@Override
51+
public String getName(Heap heap) {
52+
return "local object " + getObjectName(heap); // NOI18N
53+
}
4854

4955

5056
public InstanceNode createCopy() {

visualvm/heapviewer.truffle/src/org/graalvm/visualvm/heapviewer/truffle/nodes/TruffleObjectArrayItemNode.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,12 @@ public InstanceBased(O object, String type, ArrayItemValue item) {
6161
}
6262

6363

64+
@Override
65+
public String getName(Heap heap) {
66+
return getItemName() + " = " + getObjectName(heap); // NOI18N
67+
}
68+
69+
6470
public String getItemName() {
6571
return "[" + item.getIndex() + "]"; // NOI18N
6672
}

visualvm/heapviewer.truffle/src/org/graalvm/visualvm/heapviewer/truffle/nodes/TruffleObjectFieldNode.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,12 @@ public InstanceBased(O object, String type, FieldValue field) {
6464
}
6565

6666

67+
@Override
68+
public String getName(Heap heap) {
69+
return getFieldName() + " = " + getObjectName(heap); // NOI18N
70+
}
71+
72+
6773
public FieldValue getField() {
6874
return field;
6975
}

0 commit comments

Comments
 (0)