From 5dec0a232843d6408ed1a73292126c47a85bd5af Mon Sep 17 00:00:00 2001 From: Tobias Hunger Date: Fri, 2 Dec 2016 12:21:56 +0100 Subject: server-mode: Fix per-source COMPILE_FLAGS genex evaluation Logic added by commit 1e4bb358 (Add generator expression support to per-source COMPILE_FLAGS, 2016-10-25) accidentally frees memory before finishing with it. Revise the logic to hold the memory long enough. --- Source/cmServerProtocol.cxx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Source/cmServerProtocol.cxx b/Source/cmServerProtocol.cxx index 00dc0b5..e899190 100644 --- a/Source/cmServerProtocol.cxx +++ b/Source/cmServerProtocol.cxx @@ -688,8 +688,9 @@ static Json::Value DumpSourceFilesList( std::string compileFlags = ld.Flags; if (const char* cflags = file->GetProperty("COMPILE_FLAGS")) { cmGeneratorExpression ge; + auto cge = ge.Parse(cflags); const char* processed = - ge.Parse(cflags)->Evaluate(target->GetLocalGenerator(), config); + cge->Evaluate(target->GetLocalGenerator(), config); lg->AppendFlags(compileFlags, processed); } fileData.Flags = compileFlags; -- cgit v0.12