From 499ebb6564800c23bfb6e7b1b706a6202b3f971a Mon Sep 17 00:00:00 2001 From: Stephen Kelly Date: Sat, 23 May 2015 13:50:12 +0200 Subject: [PATCH] cmListFileBacktrace: Internalize the step of making paths relative. Currently cmMakefile calls MakeRelative on a copy of the backtrace, emits the copy to the stream once, then discards the copy. There is no need to have API for the path conversion. --- Source/cmListFileCache.cxx | 26 ++++++++------------------ Source/cmListFileCache.h | 4 ---- Source/cmake.cxx | 1 - 3 files changed, 8 insertions(+), 23 deletions(-) diff --git a/Source/cmListFileCache.cxx b/Source/cmListFileCache.cxx index 2756cd27e..ffe1a1ff9 100644 --- a/Source/cmListFileCache.cxx +++ b/Source/cmListFileCache.cxx @@ -405,29 +405,17 @@ void cmListFileBacktrace::Append(cmListFileContext const& context) this->push_back(context); } -//---------------------------------------------------------------------------- -void cmListFileBacktrace::MakeRelative() -{ - if (this->Relative) - { - return; - } - for (cmListFileBacktrace::iterator i = this->begin(); - i != this->end(); ++i) - { - i->FilePath = this->LocalGenerator->Convert(i->FilePath, - cmLocalGenerator::HOME); - } - this->Relative = true; -} - void cmListFileBacktrace::PrintTitle(std::ostream& out) { if (this->empty()) { return; } - out << (this->front().Line ? " at " : " in ") << this->front(); + + cmListFileContext lfc = this->front(); + lfc.FilePath = this->LocalGenerator->Convert(lfc.FilePath, + cmLocalGenerator::HOME); + out << (lfc.Line ? " at " : " in ") << lfc; } void cmListFileBacktrace::PrintCallStack(std::ostream& out) @@ -441,7 +429,9 @@ void cmListFileBacktrace::PrintCallStack(std::ostream& out) out << "Call Stack (most recent call first):\n"; while(i != this->end()) { - cmListFileContext const& lfc = *i; + cmListFileContext lfc = *i; + lfc.FilePath = this->LocalGenerator->Convert(lfc.FilePath, + cmLocalGenerator::HOME); out << " " << lfc << "\n"; ++i; } diff --git a/Source/cmListFileCache.h b/Source/cmListFileCache.h index f85b430e4..1971862a7 100644 --- a/Source/cmListFileCache.h +++ b/Source/cmListFileCache.h @@ -76,19 +76,15 @@ class cmListFileBacktrace: private std::vector public: cmListFileBacktrace(cmLocalGenerator* localGen = 0) : LocalGenerator(localGen) - , Relative(localGen ? false : true) { } void Append(cmListFileContext const& context); - void MakeRelative(); - void PrintTitle(std::ostream& out); void PrintCallStack(std::ostream& out); private: cmLocalGenerator* LocalGenerator; - bool Relative; }; struct cmListFile diff --git a/Source/cmake.cxx b/Source/cmake.cxx index 23803ef78..6cd005e31 100644 --- a/Source/cmake.cxx +++ b/Source/cmake.cxx @@ -2519,7 +2519,6 @@ void cmake::IssueMessage(cmake::MessageType t, std::string const& text, cmListFileBacktrace const& bt) { cmListFileBacktrace backtrace = bt; - backtrace.MakeRelative(); std::ostringstream msg; if (!this->PrintMessagePreamble(t, msg))