Selaa lähdekoodia

better error checking for FOREACH

Ken Martin 21 vuotta sitten
vanhempi
sitoutus
79fcc81b6a
2 muutettua tiedostoa jossa 4 lisäystä ja 14 poistoa
  1. 2 13
      Source/cmEndForEachCommand.cxx
  2. 2 1
      Source/cmForEachCommand.cxx

+ 2 - 13
Source/cmEndForEachCommand.cxx

@@ -18,18 +18,7 @@
 
 bool cmEndForEachCommand::InvokeInitialPass(std::vector<cmListFileArgument> const& args)
 {
-  if(args.size() < 1 )
-    {
-    this->SetError("called with incorrect number of arguments");
-    return false;
-    }
-
-  // remove any function blockers for this define
-  cmListFileFunction lff;
-  lff.m_Name = "ENDFOREACH";
-  lff.m_Arguments = args;
-  m_Makefile->RemoveFunctionBlocker(lff);
-  
-  return true;
+  this->SetError("An ENDFOREACH command was found outside of a proper FOREACH ENDFOREACH structure. Or its arguments did not match the opening FOREACH command.");
+  return false;
 }
 

+ 2 - 1
Source/cmForEachCommand.cxx

@@ -63,7 +63,8 @@ IsFunctionBlocked(const cmListFileFunction& lff, cmMakefile &mf)
           mf.ExecuteCommand(newLFF);
           }
         }
-      return false;
+      mf.RemoveFunctionBlocker(lff);
+      return true;
       }
     }