Remove a convoluted way of calling close by moving the call to the only caller.

As a bonus we can actually check the return value.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@224046 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Rafael Espindola
2014-12-11 20:12:55 +00:00
parent 428923cfe2
commit 0be06cf360
6 changed files with 30 additions and 108 deletions

View File

@@ -18,6 +18,12 @@
#include "llvm/Support/raw_ostream.h"
#include <system_error>
#if !defined(_MSC_VER) && !defined(__MINGW32__)
#include <unistd.h>
#else
#include <io.h>
#endif
using llvm::sys::fs::mapped_file_region;
namespace llvm {
@@ -72,9 +78,12 @@ FileOutputBuffer::create(StringRef FilePath, size_t Size,
return EC;
auto MappedFile = llvm::make_unique<mapped_file_region>(
FD, true, mapped_file_region::readwrite, Size, 0, EC);
FD, mapped_file_region::readwrite, Size, 0, EC);
int Ret = close(FD);
if (EC)
return EC;
if (Ret)
return std::error_code(errno, std::generic_category());
Result.reset(
new FileOutputBuffer(std::move(MappedFile), FilePath, TempFilePath));