diff options
author | Rui Ueyama <ruiu@google.com> | 2014-12-12 10:27:33 +0000 |
---|---|---|
committer | Rui Ueyama <ruiu@google.com> | 2014-12-12 10:27:33 +0000 |
commit | 961f43fb70f65a2697f67c6857587608a888e6cb (patch) | |
tree | 65cfb4deeb6eed7c6705ebee605de30173cdb968 /lld/lib/ReaderWriter/PECOFF/ReaderImportHeader.cpp | |
parent | 11a0ac66e10658f9eec87db0e846f6f5eaafc9cf (diff) | |
download | bcm5719-llvm-961f43fb70f65a2697f67c6857587608a888e6cb.tar.gz bcm5719-llvm-961f43fb70f65a2697f67c6857587608a888e6cb.zip |
Make File always take the ownership of a MemoryBuffer.
The documentation of parseFile() said that "the resulting File
object may take ownership of the MemoryBuffer." So, whether or not
the ownership of a MemoryBuffer would be taken was not clear.
A FileNode (a subclass of InputElement, which is being deprecated)
keeps the ownership if a File doesn't take it.
This patch makes File always take the ownership of a buffer.
Buffers lifespan is not always the same as File instances.
Files are able to deallocate buffers after parsing the contents.
llvm-svn: 224113
Diffstat (limited to 'lld/lib/ReaderWriter/PECOFF/ReaderImportHeader.cpp')
-rw-r--r-- | lld/lib/ReaderWriter/PECOFF/ReaderImportHeader.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/lld/lib/ReaderWriter/PECOFF/ReaderImportHeader.cpp b/lld/lib/ReaderWriter/PECOFF/ReaderImportHeader.cpp index e511ef2d40e..6c80a146c77 100644 --- a/lld/lib/ReaderWriter/PECOFF/ReaderImportHeader.cpp +++ b/lld/lib/ReaderWriter/PECOFF/ReaderImportHeader.cpp @@ -325,7 +325,7 @@ public: } std::error_code - parseFile(std::unique_ptr<MemoryBuffer> &mb, const class Registry &, + parseFile(std::unique_ptr<MemoryBuffer> mb, const class Registry &, std::vector<std::unique_ptr<File> > &result) const override { auto *file = new FileImportLibrary(std::move(mb), _machine); result.push_back(std::unique_ptr<File>(file)); |