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 | |
| 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
| -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; |

