Skip to content

Commit a80f5e4

Browse files
committed
Cleanup - utilize the new ExcludingIterator
1 parent fa816d2 commit a80f5e4

File tree

2 files changed

+5
-72
lines changed

2 files changed

+5
-72
lines changed

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

Lines changed: 3 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@
6464
import org.graalvm.visualvm.heapviewer.ui.TreeTableView;
6565
import org.graalvm.visualvm.heapviewer.ui.TreeTableViewColumn;
6666
import org.graalvm.visualvm.heapviewer.ui.UIThresholds;
67+
import org.graalvm.visualvm.heapviewer.utils.ExcludingIterator;
6768
import org.graalvm.visualvm.heapviewer.utils.NodesComputer;
6869
import org.graalvm.visualvm.heapviewer.utils.ProgressIterator;
6970
import org.graalvm.visualvm.heapviewer.utils.counters.InstanceCounter;
@@ -564,7 +565,7 @@ public boolean isLeaf() {
564565
};
565566
}
566567
protected ProgressIterator<Instance> objectsIterator(int index, Progress progress) {
567-
Iterator<Instance> fieldInstanceIterator = new ExcludingInstancesIterator(instancesIterator()) {
568+
Iterator<Instance> fieldInstanceIterator = new ExcludingIterator<Instance>(instancesIterator()) {
568569
@Override
569570
protected boolean exclude(Instance instance) {
570571
FieldValue value = getValueOfField(instance, fieldName);
@@ -670,7 +671,7 @@ public boolean isLeaf() {
670671
}
671672
protected ProgressIterator<Instance> objectsIterator(int index, Progress progress) {
672673
final Instance _instance = getInstance();
673-
Iterator<Instance> fieldInstanceIterator = new ExcludingInstancesIterator(instancesIterator()) {
674+
Iterator<Instance> fieldInstanceIterator = new ExcludingIterator<Instance>(instancesIterator()) {
674675
@Override
675676
protected boolean exclude(Instance instance) {
676677
FieldValue value = getValueOfField(instance, fieldName);
@@ -777,40 +778,6 @@ public String getShortName() {
777778

778779
}
779780

780-
// copied from org.graalvm.visualvm.heapviewer.truffle.TruffleLanguageHeapFragment
781-
// might become a public API in VisualVM-HeapViewer
782-
protected static abstract class ExcludingInstancesIterator implements Iterator<Instance> {
783-
private final Iterator<Instance> instancesIt;
784-
private Instance next;
785-
786-
protected ExcludingInstancesIterator(Iterator<Instance> it) {
787-
instancesIt = it;
788-
computeNext();
789-
}
790-
791-
@Override
792-
public boolean hasNext() {
793-
return next != null;
794-
}
795-
796-
@Override
797-
public Instance next() {
798-
Instance ret = next;
799-
computeNext();
800-
return ret;
801-
}
802-
803-
private void computeNext() {
804-
while (instancesIt.hasNext()) {
805-
next = instancesIt.next();
806-
if (!exclude(next)) return;
807-
}
808-
next = null;
809-
}
810-
811-
protected abstract boolean exclude(Instance instance);
812-
}
813-
814781

815782
@ServiceProvider(service=HeapViewerRenderer.Provider.class)
816783
public static class FieldsHistogramRendererProvider extends HeapViewerRenderer.Provider {

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

Lines changed: 2 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@
6363
import org.graalvm.visualvm.heapviewer.ui.TreeTableView;
6464
import org.graalvm.visualvm.heapviewer.ui.TreeTableViewColumn;
6565
import org.graalvm.visualvm.heapviewer.ui.UIThresholds;
66+
import org.graalvm.visualvm.heapviewer.utils.ExcludingIterator;
6667
import org.graalvm.visualvm.heapviewer.utils.NodesComputer;
6768
import org.graalvm.visualvm.heapviewer.utils.ProgressIterator;
6869
import org.graalvm.visualvm.lib.jfluid.heap.JavaClass;
@@ -380,7 +381,7 @@ protected HeapViewerNode createNode(Instance object) {
380381
}
381382
protected ProgressIterator<Instance> objectsIterator(int index, Progress _progress) {
382383
final Instance _instance = getInstance();
383-
Iterator<Instance> fieldInstanceIterator = new ExcludingInstancesIterator(instancesIterator()) {
384+
Iterator<Instance> fieldInstanceIterator = new ExcludingIterator<Instance>(instancesIterator()) {
384385
@Override
385386
protected boolean exclude(Instance instance) {
386387
List<Value> references = instance.getReferences();
@@ -505,41 +506,6 @@ private static Value getDirectReferrer(Instance instance) {
505506
}
506507

507508

508-
// copied from org.graalvm.visualvm.heapviewer.truffle.TruffleLanguageHeapFragment
509-
// might become a public API in VisualVM-HeapViewer
510-
protected static abstract class ExcludingInstancesIterator implements Iterator<Instance> {
511-
private final Iterator<Instance> instancesIt;
512-
private Instance next;
513-
514-
protected ExcludingInstancesIterator(Iterator<Instance> it) {
515-
instancesIt = it;
516-
computeNext();
517-
}
518-
519-
@Override
520-
public boolean hasNext() {
521-
return next != null;
522-
}
523-
524-
@Override
525-
public Instance next() {
526-
Instance ret = next;
527-
computeNext();
528-
return ret;
529-
}
530-
531-
private void computeNext() {
532-
while (instancesIt.hasNext()) {
533-
next = instancesIt.next();
534-
if (!exclude(next)) return;
535-
}
536-
next = null;
537-
}
538-
539-
protected abstract boolean exclude(Instance instance);
540-
}
541-
542-
543509
@ServiceProvider(service=HeapViewerRenderer.Provider.class)
544510
public static class JavaReferencesRendererProvider extends HeapViewerRenderer.Provider {
545511

0 commit comments

Comments
 (0)