Explorar o código

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.
Tobias Hunger %!s(int64=9) %!d(string=hai) anos
pai
achega
5dec0a2328
Modificáronse 1 ficheiros con 2 adicións e 1 borrados
  1. 2 1
      Source/cmServerProtocol.cxx

+ 2 - 1
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;