Browse Source

cmGlobalGenerator: Refactor IsExcluded.

Make it easier to convert it to a loop.
Stephen Kelly 10 years ago
parent
commit
5f05b56284
1 changed files with 10 additions and 2 deletions
  1. 10 2
      Source/cmGlobalGenerator.cxx

+ 10 - 2
Source/cmGlobalGenerator.cxx

@@ -2044,7 +2044,9 @@ void cmGlobalGenerator::SetConfiguredFilesPath(cmGlobalGenerator* gen)
 bool cmGlobalGenerator::IsExcluded(cmLocalGenerator* root,
                                    cmLocalGenerator* gen) const
 {
-  if(!gen || gen == root)
+  assert(gen);
+
+  if(gen == root)
     {
     // No directory excludes itself.
     return false;
@@ -2056,9 +2058,15 @@ bool cmGlobalGenerator::IsExcluded(cmLocalGenerator* root,
     return true;
     }
 
+  cmLocalGenerator* lg = gen->GetParent();
+  if (!lg)
+    {
+    return false;
+    }
+
   // This directory is included in its parent.  Check whether the
   // parent is excluded.
-  return this->IsExcluded(root, gen->GetParent());
+  return this->IsExcluded(root, lg);
 }
 
 bool cmGlobalGenerator::IsExcluded(cmLocalGenerator* root,