diff options
Diffstat (limited to 'lib/Support/FileOutputBuffer.cpp')
-rw-r--r-- | lib/Support/FileOutputBuffer.cpp | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/lib/Support/FileOutputBuffer.cpp b/lib/Support/FileOutputBuffer.cpp index c01778f960..8f2c9fcce0 100644 --- a/lib/Support/FileOutputBuffer.cpp +++ b/lib/Support/FileOutputBuffer.cpp @@ -33,7 +33,7 @@ FileOutputBuffer::~FileOutputBuffer() { error_code FileOutputBuffer::create(StringRef FilePath, size_t Size, - OwningPtr<FileOutputBuffer> &Result, + std::unique_ptr<FileOutputBuffer> &Result, unsigned Flags) { // If file already exists, it must be a regular file (to be mappable). sys::fs::file_status Stat; @@ -73,18 +73,28 @@ error_code FileOutputBuffer::create(StringRef FilePath, if (EC) return EC; - OwningPtr<mapped_file_region> MappedFile(new mapped_file_region( + std::unique_ptr<mapped_file_region> MappedFile(new mapped_file_region( FD, true, mapped_file_region::readwrite, Size, 0, EC)); if (EC) return EC; Result.reset(new FileOutputBuffer(MappedFile.get(), FilePath, TempFilePath)); if (Result) - MappedFile.take(); + MappedFile.release(); return error_code::success(); } +error_code FileOutputBuffer::create(StringRef FilePath, + size_t Size, + OwningPtr<FileOutputBuffer> &Result, + unsigned Flags) { + std::unique_ptr<FileOutputBuffer> FOB; + error_code ec = create(FilePath, Size, FOB, Flags); + Result = std::move(FOB); + return ec; +} + error_code FileOutputBuffer::commit(int64_t NewSmallerSize) { // Unmap buffer, letting OS flush dirty pages to file on disk. Region.reset(0); |