diff --git a/src/plugins/projectexplorer/project.cpp b/src/plugins/projectexplorer/project.cpp index e8b68a4560e..6b092b676a1 100644 --- a/src/plugins/projectexplorer/project.cpp +++ b/src/plugins/projectexplorer/project.cpp @@ -461,6 +461,14 @@ void Project::setRootProjectNode(ProjectNode *root) if (d->m_rootProjectNode == root) return; + if (root && root->nodes().isEmpty()) { + // Something went wrong with parsing: At least the project file needs to be + // shown so that the user can fix the breakage. + // Do not leak root and use default project tree in this case. + delete root; + root = nullptr; + } + ProjectTree::applyTreeManager(root); ProjectNode *oldNode = d->m_rootProjectNode;