diff options
| author | Vitaly Buka <vitalybuka@google.com> | 2017-08-31 02:38:58 +0000 | 
|---|---|---|
| committer | Vitaly Buka <vitalybuka@google.com> | 2017-08-31 02:38:58 +0000 | 
| commit | a5fa6308da0a82d7877d9c9590dd9aba9030ad28 (patch) | |
| tree | ecc2875c0893637010596c29c1cb274f3d516eba /llvm/lib | |
| parent | 67e72dee795c477c9636a78498d24e76e9a8d7a4 (diff) | |
| download | bcm5719-llvm-a5fa6308da0a82d7877d9c9590dd9aba9030ad28.tar.gz bcm5719-llvm-a5fa6308da0a82d7877d9c9590dd9aba9030ad28.zip | |
llvm-mt: Fix release of OutputDoc
Summary:
xmlDoc needs to be released with xmlFreeDoc.
Reset root element before release to avoid release of CombinedRoot owned
by CombinedDoc,
Reviewers: ecbeckmann, rnk, zturner, ruiu
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D37321
llvm-svn: 312207
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/WindowsManifest/WindowsManifestMerger.cpp | 4 | 
1 files changed, 3 insertions, 1 deletions
| diff --git a/llvm/lib/WindowsManifest/WindowsManifestMerger.cpp b/llvm/lib/WindowsManifest/WindowsManifestMerger.cpp index 91547c98469..da968c4ae1a 100644 --- a/llvm/lib/WindowsManifest/WindowsManifestMerger.cpp +++ b/llvm/lib/WindowsManifest/WindowsManifestMerger.cpp @@ -652,11 +652,13 @@ WindowsManifestMerger::WindowsManifestMergerImpl::getMergedManifest() {      xmlNodePtr CombinedRoot = xmlDocGetRootElement(CombinedDoc);      std::vector<xmlNsPtr> RequiredPrefixes;      checkAndStripPrefixes(CombinedRoot, RequiredPrefixes); -    std::unique_ptr<xmlDoc> OutputDoc(xmlNewDoc((const unsigned char *)"1.0")); +    std::unique_ptr<xmlDoc, decltype(&xmlFreeDoc)> OutputDoc( +        xmlNewDoc((const unsigned char *)"1.0"), &xmlFreeDoc);      xmlDocSetRootElement(OutputDoc.get(), CombinedRoot);      xmlKeepBlanksDefault(0);      xmlDocDumpFormatMemoryEnc(OutputDoc.get(), &XmlBuff, &BufferSize, "UTF-8",                                1); +    xmlDocSetRootElement(OutputDoc.get(), nullptr);    }    if (BufferSize == 0)      return nullptr; | 

