diff --git a/src/lib/data/PersistentStorage.cpp b/src/lib/data/PersistentStorage.cpp index 339cbbf4..c231a1c9 100644 --- a/src/lib/data/PersistentStorage.cpp +++ b/src/lib/data/PersistentStorage.cpp @@ -978,7 +978,7 @@ std::shared_ptr PersistentStorage::getGraphForAll() const tokenIds.push_back(p.first); } - addNodesToGraph(tokenIds, graph.get()); + addNodesToGraph(tokenIds, graph.get(), false); return graph; } @@ -1088,7 +1088,7 @@ std::shared_ptr PersistentStorage::getGraphForActiveTokenIds( if (isNamespace) { - addNodesToGraph(nodeIds, graph); + addNodesToGraph(nodeIds, graph, false); } else { @@ -1115,7 +1115,7 @@ std::shared_ptr PersistentStorage::getGraphForActiveTokenIds( if (expandedChildIds.size()) { - addNodesToGraph(expandedChildIds, graph); + addNodesToGraph(expandedChildIds, graph, true); addEdgesToGraph(expandedChildEdgeIds, graph); } @@ -1143,7 +1143,7 @@ std::shared_ptr PersistentStorage::getGraphForChildrenOfNodeId(Id nodeId) m_hierarchyCache.addFirstNonImplicitChildIdsForNodeId(nodeId, &nodeIds, &edgeIds); std::shared_ptr graph = std::make_shared(); - addNodesToGraph(nodeIds, graph.get()); + addNodesToGraph(nodeIds, graph.get(), true); addEdgesToGraph(edgeIds, graph.get()); addComponentAccessToGraph(graph.get()); @@ -1789,7 +1789,7 @@ std::set PersistentStorage::getReferencingByImports(const std::set& newNodeIds, Graph* graph) const +void PersistentStorage::addNodesToGraph(const std::vector& newNodeIds, Graph* graph, bool addChildCount) const { TRACE(); @@ -1875,7 +1875,10 @@ void PersistentStorage::addNodesToGraph(const std::vector& newNodeIds, Graph } } - node->setChildCount(m_hierarchyCache.getFirstNonImplicitChildIdsCountForNodeId(storageNode.id)); + if (addChildCount) + { + node->setChildCount(m_hierarchyCache.getFirstNonImplicitChildIdsCountForNodeId(storageNode.id)); + } } } } @@ -1940,7 +1943,7 @@ void PersistentStorage::addNodesWithParentsAndEdgesToGraph( allNodeIds.insert(parentNodeIds.begin(), parentNodeIds.end()); - addNodesToGraph(utility::toVector(allNodeIds), graph); + addNodesToGraph(utility::toVector(allNodeIds), graph, true); addEdgesToGraph(utility::toVector(allEdgeIds), graph); } diff --git a/src/lib/data/PersistentStorage.h b/src/lib/data/PersistentStorage.h index ce387c91..ac879234 100644 --- a/src/lib/data/PersistentStorage.h +++ b/src/lib/data/PersistentStorage.h @@ -156,7 +156,7 @@ private: std::set getReferencingByIncludes(const std::set& filePaths); std::set getReferencingByImports(const std::set& filePaths); - void addNodesToGraph(const std::vector& nodeIds, Graph* graph) const; + void addNodesToGraph(const std::vector& nodeIds, Graph* graph, bool addChildCount) const; void addEdgesToGraph(const std::vector& edgeIds, Graph* graph) const; void addNodesWithParentsAndEdgesToGraph( const std::vector& nodeIds, const std::vector& edgeIds, Graph* graph) const;