Browse Source

Use unique_ptr to make sure memory not update when local variable desctructing.

Xiang Li 8 years ago
parent
commit
e49d495f94
1 changed files with 3 additions and 3 deletions
  1. 3 3
      tools/clang/unittests/HLSL/ShaderOpTest.cpp

+ 3 - 3
tools/clang/unittests/HLSL/ShaderOpTest.cpp

@@ -1718,9 +1718,9 @@ void ShaderOpParser::ParseShaderOpSet(IXmlReader *pReader, ShaderOpSet *pShaderO
       LPCWSTR pLocalName;
       CHECK_HR(pReader->GetLocalName(&pLocalName, nullptr));
       if (0 == wcscmp(pLocalName, L"ShaderOp")) {
-        ShaderOp S;
-        pShaderOpSet->ShaderOps.push_back(S);
-        ParseShaderOp(pReader, &pShaderOpSet->ShaderOps.back());
+        std::unique_ptr<ShaderOp> S = std::make_unique<ShaderOp>();
+        ParseShaderOp(pReader, S.get());
+        pShaderOpSet->ShaderOps.push_back(*S.release());
       }
     }
     else if (nt == XmlNodeType_EndElement) {