diff options
Diffstat (limited to 'Source/cmMakefile.cxx')
-rw-r--r-- | Source/cmMakefile.cxx | 33 |
1 files changed, 20 insertions, 13 deletions
diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx index 7be6b88..162d3e7 100644 --- a/Source/cmMakefile.cxx +++ b/Source/cmMakefile.cxx @@ -222,6 +222,26 @@ void cmMakefile::PrintCommandTrace(const cmListFileFunction& lff) const cmSystemTools::Message(msg.str().c_str()); } +// Helper class to make sure the call stack is valid. +class cmMakefileCall +{ +public: + cmMakefileCall(cmMakefile* mf, const cmCommandContext& lfc, + cmExecutionStatus& status): Makefile(mf) + { + this->Makefile->ContextStack.push_back(&lfc); + this->Makefile->ExecutionStatusStack.push_back(&status); + } + + ~cmMakefileCall() + { + this->Makefile->ExecutionStatusStack.pop_back(); + this->Makefile->ContextStack.pop_back(); + } +private: + cmMakefile* Makefile; +}; + //---------------------------------------------------------------------------- bool cmMakefile::ExecuteCommand(const cmListFileFunction& lff, cmExecutionStatus &status) @@ -5148,16 +5168,3 @@ cmMakefile::MacroPushPop::~MacroPushPop() { this->Makefile->PopMacroScope(this->ReportError); } - -cmMakefileCall::cmMakefileCall(cmMakefile* mf, const cmCommandContext& lfc, - cmExecutionStatus& status): Makefile(mf) -{ - this->Makefile->ContextStack.push_back(&lfc); - this->Makefile->ExecutionStatusStack.push_back(&status); -} - -cmMakefileCall::~cmMakefileCall() -{ - this->Makefile->ExecutionStatusStack.pop_back(); - this->Makefile->ContextStack.pop_back(); -} |