cmListFileBacktrace: Implement in terms of cmState::Snapshot.

Avoid copying many strings into each backtrace object.
This commit is contained in:
Stephen Kelly
2015-05-29 22:37:59 +02:00
committed by Brad King
parent 238aac2351
commit d2475bb5c4
5 changed files with 37 additions and 52 deletions

View File

@@ -86,19 +86,19 @@ struct cmListFileFunction: public cmCommandContext
std::vector<cmListFileArgument> Arguments;
};
class cmListFileBacktrace: private std::vector<cmListFileContext>
class cmListFileBacktrace
{
public:
cmListFileBacktrace(cmState::Snapshot snapshot = cmState::Snapshot())
: Snapshot(snapshot)
cmListFileBacktrace(cmState::Snapshot snapshot = cmState::Snapshot(),
cmCommandContext const& cc = cmCommandContext())
: Context(cc), Snapshot(snapshot)
{
}
void Append(cmListFileContext const& context);
void PrintTitle(std::ostream& out);
void PrintCallStack(std::ostream& out);
private:
cmCommandContext Context;
cmState::Snapshot Snapshot;
};