Make ObjectFile and BitcodeReader always own the MemoryBuffer.

This allows us to just use a std::unique_ptr to store the pointer to the buffer.
The flip side is that they have to support releasing the buffer back to the
caller.

Overall this looks like a more efficient and less brittle api.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211542 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Rafael Espindola
2014-06-23 21:53:12 +00:00
parent 7e7e89f178
commit 1f659329b6
23 changed files with 117 additions and 154 deletions

View File

@@ -400,10 +400,13 @@ std::error_code Module::materializeAll() {
return Materializer->MaterializeModule(this);
}
std::error_code Module::materializeAllPermanently() {
std::error_code Module::materializeAllPermanently(bool ReleaseBuffer) {
if (std::error_code EC = materializeAll())
return EC;
if (ReleaseBuffer)
Materializer->releaseBuffer();
Materializer.reset();
return std::error_code();
}