Skip to content

Commit 05c5bed

Browse files
committed
Provide feedback when computing merged fields/references
1 parent b5978a1 commit 05c5bed

File tree

2 files changed

+11
-5
lines changed

2 files changed

+11
-5
lines changed

visualvm/heapviewer/src/org/graalvm/visualvm/heapviewer/java/impl/JavaFieldsPlugin.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -516,15 +516,17 @@ public boolean isLeaf() {
516516
}
517517
};
518518
}
519-
protected ProgressIterator<Instance> objectsIterator(int index, Progress progress) {
519+
protected ProgressIterator<Instance> objectsIterator(int index, final Progress _progress) {
520+
_progress.setupUnknownSteps();
520521
Iterator<Instance> fieldInstanceIterator = new ExcludingIterator<Instance>(instancesIterator()) {
521522
@Override
522523
protected boolean exclude(Instance instance) {
524+
_progress.step();
523525
FieldValue value = getValueOfField(instance, fieldName);
524526
return value == null || !fieldValue.equals(value.getValue());
525527
}
526528
};
527-
return new ProgressIterator(fieldInstanceIterator, index, true, progress);
529+
return new ProgressIterator(fieldInstanceIterator, index, true, _progress);
528530
}
529531
protected String getMoreNodesString(String moreNodesCount) {
530532
return Bundle.JavaFieldsPlugin_FieldHistogramMoreNodes(moreNodesCount);
@@ -622,17 +624,19 @@ public boolean isLeaf() {
622624
}
623625
};
624626
}
625-
protected ProgressIterator<Instance> objectsIterator(int index, Progress progress) {
627+
protected ProgressIterator<Instance> objectsIterator(int index, final Progress _progress) {
626628
final Instance _instance = getInstance();
629+
_progress.setupUnknownSteps();
627630
Iterator<Instance> fieldInstanceIterator = new ExcludingIterator<Instance>(instancesIterator()) {
628631
@Override
629632
protected boolean exclude(Instance instance) {
633+
_progress.step();
630634
FieldValue value = getValueOfField(instance, fieldName);
631635
if (!(value instanceof ObjectFieldValue)) return true;
632636
return !Objects.equals(_instance, ((ObjectFieldValue)value).getInstance());
633637
}
634638
};
635-
return new ProgressIterator(fieldInstanceIterator, index, true, progress);
639+
return new ProgressIterator(fieldInstanceIterator, index, true, _progress);
636640
}
637641
protected String getMoreNodesString(String moreNodesCount) {
638642
return Bundle.JavaFieldsPlugin_FieldHistogramMoreNodes(moreNodesCount);

visualvm/heapviewer/src/org/graalvm/visualvm/heapviewer/java/impl/JavaReferencesPlugin.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -322,11 +322,13 @@ protected HeapViewerNode createNode(Instance object) {
322322
Instance getReferer() { return ReferenceNode.this.getInstance(); }
323323
};
324324
}
325-
protected ProgressIterator<Instance> objectsIterator(int index, Progress _progress) {
325+
protected ProgressIterator<Instance> objectsIterator(int index, final Progress _progress) {
326326
final Instance _instance = getInstance();
327+
_progress.setupUnknownSteps();
327328
Iterator<Instance> fieldInstanceIterator = new ExcludingIterator<Instance>(instancesIterator()) {
328329
@Override
329330
protected boolean exclude(Instance instance) {
331+
_progress.step();
330332
List<Value> references = instance.getReferences();
331333
if (_instance == null) return !references.isEmpty();
332334
for (Value reference : references)

0 commit comments

Comments
 (0)