From 1f659329b63aa1d1af2b2bfc8b174a8ccdaba2c0 Mon Sep 17 00:00:00 2001 From: Rafael Espindola Date: Mon, 23 Jun 2014 21:53:12 +0000 Subject: 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 --- lib/IR/Module.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'lib/IR') diff --git a/lib/IR/Module.cpp b/lib/IR/Module.cpp index 6a5b386c19..eea14df3f3 100644 --- a/lib/IR/Module.cpp +++ b/lib/IR/Module.cpp @@ -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(); } -- cgit v1.2.3