X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=statesystem%2Forg.eclipse.tracecompass.statesystem.core%2Fsrc%2Forg%2Feclipse%2Ftracecompass%2Finternal%2Fstatesystem%2Fcore%2Fbackend%2Fhistorytree%2FHistoryTreeBackend.java;fp=statesystem%2Forg.eclipse.tracecompass.statesystem.core%2Fsrc%2Forg%2Feclipse%2Ftracecompass%2Finternal%2Fstatesystem%2Fcore%2Fbackend%2Fhistorytree%2FHistoryTreeBackend.java;h=5e752deeb98b3d09ed35c390aa329a776c25517b;hb=88598bff4fde87a46ad5d634967bc051e7c4385c;hp=3b021c12081d01ca86de97874dce60b86b97d60d;hpb=441a6e7fa14cd9ed8a0aeafead9a2f379fd67e30;p=deliverable%2Ftracecompass.git diff --git a/statesystem/org.eclipse.tracecompass.statesystem.core/src/org/eclipse/tracecompass/internal/statesystem/core/backend/historytree/HistoryTreeBackend.java b/statesystem/org.eclipse.tracecompass.statesystem.core/src/org/eclipse/tracecompass/internal/statesystem/core/backend/historytree/HistoryTreeBackend.java index 3b021c1208..5e752deeb9 100644 --- a/statesystem/org.eclipse.tracecompass.statesystem.core/src/org/eclipse/tracecompass/internal/statesystem/core/backend/historytree/HistoryTreeBackend.java +++ b/statesystem/org.eclipse.tracecompass.statesystem.core/src/org/eclipse/tracecompass/internal/statesystem/core/backend/historytree/HistoryTreeBackend.java @@ -273,18 +273,19 @@ public class HistoryTreeBackend implements IStateHistoryBackend { checkValidTime(t); /* Queue is a stack of nodes containing nodes intersecting t */ - Deque queue = new LinkedList<>(); + Deque queue = new LinkedList<>(); /* We start by reading the information in the root node */ - queue.add(getSHT().getRootNode()); + queue.add(getSHT().getRootNode().getSequenceNumber()); /* Then we follow the down in the relevant children */ try { while (!queue.isEmpty()) { - HTNode currentNode = queue.pop(); + int sequenceNumber = queue.pop(); + HTNode currentNode = getSHT().readNode(sequenceNumber); if (currentNode.getNodeType() == HTNode.NodeType.CORE) { - /*Here we add the relevant children nodes for BFS*/ - queue.addAll(getSHT().selectNextChildren((ParentNode) currentNode, t)); + /* Here we add the relevant children nodes for BFS */ + queue.addAll(((ParentNode) currentNode).selectNextChildren(t)); } currentNode.writeInfoFromNode(stateInfo, t); } @@ -325,13 +326,15 @@ public class HistoryTreeBackend implements IStateHistoryBackend { throws TimeRangeException, ClosedChannelException { checkValidTime(t); - Deque queue = new LinkedList<>(); - queue.add(getSHT().getRootNode()); + Deque queue = new LinkedList<>(); + queue.add(getSHT().getRootNode().getSequenceNumber()); HTInterval interval = null; while (interval == null && !queue.isEmpty()) { - HTNode currentNode = queue.pop(); + int sequenceNumber = queue.pop(); + HTNode currentNode = getSHT().readNode(sequenceNumber); if (currentNode.getNodeType() == HTNode.NodeType.CORE) { - queue.addAll(getSHT().selectNextChildren((ParentNode) currentNode, t)); + /* Here we add the relevant children nodes for BFS */ + queue.addAll(((ParentNode) currentNode).selectNextChildren(t)); } interval = currentNode.getRelevantInterval(key, t); }