From dfe734f3f1140504e0747c76f46b2931b32bae1b Mon Sep 17 00:00:00 2001 From: wmayer Date: Sun, 30 Sep 2018 14:56:47 +0200 Subject: [PATCH] fix infinite recursion when creating dependency graph with loops --- src/App/Document.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/App/Document.cpp b/src/App/Document.cpp index e0dedfb0b0..3ac0753d23 100644 --- a/src/App/Document.cpp +++ b/src/App/Document.cpp @@ -525,8 +525,13 @@ void Document::exportGraphviz(std::ostream& out) const setGraphLabel(sub, cs); for(auto obj : cs->getOutList()) { - if(obj->hasExtension(GeoFeatureGroupExtension::getExtensionClassTypeId())) - recursiveCSSubgraphs(obj, cs); + if (obj->hasExtension(GeoFeatureGroupExtension::getExtensionClassTypeId())) { + // in case of dependencies loops check if obj is already part of the + // map to avoid infinite recursions + auto it = GraphList.find(obj); + if (it == GraphList.end()) + recursiveCSSubgraphs(obj, cs); + } } //setup the origin if available