瀏覽代碼

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

Xiang Li 8 年之前
父節點
當前提交
e49d495f94
共有 1 個文件被更改,包括 3 次插入3 次删除
  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;
       LPCWSTR pLocalName;
       CHECK_HR(pReader->GetLocalName(&pLocalName, nullptr));
       CHECK_HR(pReader->GetLocalName(&pLocalName, nullptr));
       if (0 == wcscmp(pLocalName, L"ShaderOp")) {
       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) {
     else if (nt == XmlNodeType_EndElement) {