Skip to content

Commit 50b2bb7

Browse files
committed
Cache isRoot computation
1 parent 5bc2a52 commit 50b2bb7

File tree

1 file changed

+9
-3
lines changed
  • visualizer/IdealGraphVisualizer/Graph/src/main/java/org/graalvm/visualizer/graph

1 file changed

+9
-3
lines changed

visualizer/IdealGraphVisualizer/Graph/src/main/java/org/graalvm/visualizer/graph/Figure.java

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -509,11 +509,16 @@ public Cluster getCluster() {
509509
}
510510
}
511511

512+
Boolean isRoot;
513+
512514
@Override
513515
public boolean isRoot() {
514-
List<InputNode> sourceNodes = source.getSourceNodes();
515-
//Get property value just once
516-
return sourceNodes.size() > 0 && NAME_ROOT.equals(sourceNodes.get(0).getProperties().get(PROPNAME_NAME, String.class));
516+
if (isRoot == null) {
517+
List<InputNode> sourceNodes = source.getSourceNodes();
518+
// Get property value just once
519+
isRoot = !sourceNodes.isEmpty() && NAME_ROOT.equals(sourceNodes.get(0).getProperties().get(PROPNAME_NAME, String.class));
520+
}
521+
return isRoot;
517522
}
518523

519524
@Override
@@ -528,6 +533,7 @@ public Rectangle getBounds() {
528533

529534
void sourcesChanged(Source s) {
530535
diagram.invalidateSlotMap();
536+
isRoot = null;
531537
}
532538

533539
@Override

0 commit comments

Comments
 (0)